Sådan kompilerer du Theos Tweak

Kompilering af tweaks ved hjælp af Theos-biblioteker kan være en udfordring for nybegyndere, hvilket ofte fører til adskillige fejl og eventuelle kompileringsfejl. At søge efter løsninger online i sådanne scenarier giver muligvis ikke tilfredsstillende resultater. Denne vejledning har til formål at guide dig gennem kompileringsprocessen af tweaks til både rootless og rootful-miljøer, hvilket resulterer i oprettelsen af installationsklare DEB-pakker.
En betydelig del af jailbreak-fællesskabet er afhængig af open source-jailbreak-tweaks. Disse tweaks fungerer ikke kun som inspirerende demonstrationer af iOS-systemmodifikationer, men også som omfattende vidensbaser for håbefulde tweak-udviklere. Mange af disse tweaks skal kompileres ved hjælp af Theos, et platformsuafhængigt byggesystem til at oprette iOS-tweaks.
Theos-bibliotekerne kan nemt installeres på flere platforme, såsom iOS-enheder, macOS, Linux og Windows-pc'er. Denne fleksibilitet giver udviklere mulighed for at kompilere jailbreak-tweaks uden besvær på tværs af en række forskellige operativsystemer. I denne guide giver vi en trin-for-trin gennemgang af kompilering af en tweak med Theos og distribution af DEB-pakker til installation.

I denne vejledning om at kompilere en tweak med Theos, bruger vi kildekoden til Sushi-tweak'en . Sushi er designet til at forbedre din mediekontroloplevelse på jailbroken enheder. Den introducerer et brugerdefinerbart banner, inspireret af Dynamic Island, der problemfrit overgår til en mediekontrolvisning via animationer, når den aktuelt afspillede sang ændres.
Sushi tweak kan kompileres med Theos til både rootless og rootful jailbreaks, der kører fra iOS 13 op til iOS 16. Dopamine 2 og Palera1n understøttes også.
Sådan kompilerer du en tweak med theos til iOS
For at kompilere en tweak med Theos anbefales det at bruge den nyeste version af biblioteket, der er kompatibel med Sonoma 14.3.1. Hvis du vil sikre kompatibilitet med iOS-versioner før 14.0, er en nedgradering til Xcode 11.7 nødvendig. Ikke desto mindre vil vi til vores nuværende opgave bruge Xcode 14.3.1. Det er værd at bemærke, at Xcode 15 begrænser kompileringen af de fleste jailbreak-tweaks.
Derfor understøtter denne nyere værktøjskæde ikke bygning til det gamle ABI. Hvis du vil bevare understøttelsen af tidligere versioner, kan du hente værktøjskæden fra en tidligere Xcode-udgivelse og skifte mellem den og den nyere værktøjskæde efter behov ved at indstille Xcode-kommandolinjeværktøjsversionen.
For at kompilere en jailbreak-tweak med theos skal du følge disse trin:
Trin 1. Installer theos på din pc, Mac eller iOS-enhed ved at følge vores vejledning.
Trin 2. Installer iPhoneOS16.4.sdk ved at downloade Xcode 14.3.1 eller Xcode 11.7 direkte fra Apples servere. Du skal godkende med dit Apple-ID for at downloade.
Trin 3. Åbn terminalappen, og udpak Xcode_14.3.1.xip med følgende kommando. Efter udpakningen skal du omdøbe appen, så den ikke er i konflikt med din primære installation af Xcode.
xip -x Xcode_14.3.1.xip
Trin 4. Flyt Xcode_14.3.1.app til mappen Programmer.

Trin 5. Skift din valgte version af kommandolinjeværktøjerne i Xcode. Følgende kommando vil midlertidigt ændre din version af kommandolinjeværktøjerne for kun denne terminalsession.
export DEVELOPER_DIR=/Applications/Xcode_14.3.1.app/Contents/Developer
eller permanent
sudo xcode-select -switch /Applications/Xcode_14.3.1.app/Contents/Developer
Hvis du har brug for at bruge den nyeste Xcode-værktøjskæde fra kommandolinjen, skal du bruge --reset:
sudo xcode-select --reset
Trin 6. Klon Sushi tweak-arkivet fra GitHub til din computer.
git clone https://github.com/Skittyblock/Sushi

Trin 7. Sushi-justeringen bruger nogle ekstra klasser til brug i præferencepakker. Klon SkittyPrefs fra GitHub til mappen "prefs" i mappen "Sushi".
cd Sushi && cd prefs && git clone https://github.com/Skittyblock/SkittyPrefs
Trin 8. Gå tilbage til hovedmappen "Sushi" i terminalappen.
cd ..
Trin 9. Opret SPM-konfigurationen ved at udføre denne kommando.
make spm
Trin 10. Fjern objekt- og eksekverbare filer. Vær opmærksom på, at du skal køre kommandoen "make clean", når du skifter mellem rootful og rootless builds.
make clean
Trin 11. Kompilér Sushi tweak og generer en rootless DEB-pakke til Dopamine- eller Palera1n -jailbreaks. Fjern denne indstilling "THEOS_PACKAGE_SCHEME=rootless" for rootful build.
make do THEOS_PACKAGE_SCHEME=rootless

Trin 12. Når kompileringsprocessen er færdig, finder du DEB-pakkerne (arm, arm64) for den tweak, der blev oprettet med Theos, i mappen "packages", der ligger i mappen "Sushi".

Almindelige Theos-kompileringsfejl
Den primære udfordring, der opstår ved kompilering af tweaks med Theos, stammer ofte fra brugen af en inkompatibel version af Xcode. For eksempel leveres Xcode 15 typisk med den seneste version af iPhone OS SDK, såsom iPhoneOS17.2.sdk. Tweaks skal dog ofte være kompatible ikke kun med iOS 16, men også med tidligere versioner som iOS 13, iOS 14 og iOS 15. I sådanne tilfælde bliver installation af en ældre version af Xcode 11.7 en nødvendighed.

Følgende fejl kan opstå, når du kører en forkert Xcode-version:
- ld: advarsel: -multiply_defined er forældet
- ld: advarsel: ignorerer duplikerede biblioteker: '-lc++'
- ld: frameworket 'MediaRemote' blev ikke fundet
- clang: fejl: linkerkommando mislykkedes med exit-kode 1 (brug -v for at se kald)
- make[4]: *** [/Brugere/.../theos/makefiles/instance/library.mk:52: /Brugere/.../.../.theos/obj/debug/arm64e/....dylib] Fejl 1
- fejl: 'groupTableViewBackgroundColor' er udfaset: først udfaset i ios 13.0 [-Werror,-Wdeprecated-declarations] returner [UIColor groupTableViewBackgroundColor];
- .../SDK'er/iPhone017.2.sdk/ System/Bibliotek/Frameworks/ UIKit.framework/Headers/UIInterface.h:247:48: n