Slik kompilerer du Theos Tweak

Det kan være en utfordring for nybegynnere å kompilere tweaks ved hjelp av Theos-biblioteker, noe som ofte fører til en rekke feil og eventuelle kompileringsfeil. Det kan hende at det ikke gir tilfredsstillende resultater å søke etter løsninger på nettet i slike scenarier. Denne veiledningen tar sikte på å veilede deg gjennom kompileringsprosessen for tweaks for både rotløse og rotfulle miljøer, noe som resulterer i opprettelse av DEB-pakker som er klare til installasjon.
En betydelig del av jailbreak-fellesskapet er avhengig av jailbreak-tweaks med åpen kildekode. Disse tweaksene fungerer ikke bare som inspirerende demonstrasjoner av iOS-systemmodifikasjoner, men også som omfattende kunnskapsbaser for håpefulle tweak-utviklere. Mange av disse tweaksene må kompileres ved hjelp av Theos, et plattformuavhengig byggesystem for å lage iOS-tweaks.
Theos-bibliotekene er enkle å installere på flere plattformer, for eksempel iOS-enheter, macOS, Linux og Windows-PCer. Denne fleksibiliteten lar utviklere kompilere jailbreak-tweaks uten problemer på tvers av en rekke operativsystemer. I denne veiledningen vil vi gi en trinnvis gjennomgang for å kompilere en tweak med Theos og distribuere DEB-pakker for installasjon.

I denne veiledningen om hvordan du kompilerer en tweak med Theos, skal vi bruke kildekoden til Sushi-tweaket . Sushi er laget for å forbedre mediekontrollopplevelsen din på jailbroken enheter. Den introduserer et tilpassbart banner, inspirert av Dynamic Island, som jevnt overgår til en mediekontrollvisning gjennom animasjoner når sangen som spilles av endres.
Sushi tweak kan kompileres med Theos for både rootless og rootful jailbreaks som kjører fra iOS 13 opp til iOS 16. Dopamine 2 og Palera1n støttes også.
Slik kompilerer du en tweak med theos for iOS
For å kompilere en tweak med Theos, anbefales det å bruke den nyeste versjonen av biblioteket som er kompatibel med Sonoma 14.3.1. Hvis du har tenkt å sikre kompatibilitet med iOS-versjoner før 14.0, er en nedgradering til Xcode 11.7 nødvendig. Likevel vil vi bruke Xcode 14.3.1 for vår nåværende oppgave. Det er verdt å merke seg at Xcode 15 begrenser kompileringen av de fleste jailbreak-tweaks.
Derfor støtter ikke denne nyere verktøykjeden bygging for den gamle ABI-en. Hvis du vil opprettholde støtte for tidligere versjoner, kan du hente verktøykjeden fra en tidligere Xcode-utgivelse og bytte mellom den og den nyere verktøykjeden etter ønske ved å angi Xcode-kommandolinjeverktøyversjonen.
For å kompilere en jailbreak-tweak med theos, følg trinnene:
Trinn 1. Installer theos på PC-en, Mac-en eller iOS-enheten din ved å følge veiledningen vår.
Trinn 2. Installer iPhoneOS16.4.sdk ved å laste ned Xcode 14.3.1 eller Xcode 11.7 direkte fra Apples servere. Du må autentisere med Apple-ID-en din for å laste ned.
Trinn 3. Åpne terminalappen og pakk ut Xcode_14.3.1.xip med følgende kommando. Etter utpakking, gi appen nytt navn slik at den ikke kommer i konflikt med din primære installasjon av Xcode.
xip -x Xcode_14.3.1.xip
Trinn 4. Flytt Xcode_14.3.1.app til Programmer-mappen.

Trinn 5. Endre den valgte versjonen av kommandolinjeverktøyene i Xcode. Følgende kommando vil midlertidig endre versjonen av kommandolinjeverktøyene dine for bare denne terminaløkten.
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 trenger å bruke den nyeste Xcode-verktøykjeden fra kommandolinjen, bruk --reset:
sudo xcode-select --reset
Trinn 6. Klon Sushi tweak-repositoriet fra GitHub til datamaskinen din.
git clone https://github.com/Skittyblock/Sushi

Trinn 7. Sushi-justeringen bruker noen tilleggsklasser for bruk i preferansepakker. Klon SkittyPrefs fra GitHub til "prefs"-mappen i "Sushi"-mappen.
cd Sushi && cd prefs && git clone https://github.com/Skittyblock/SkittyPrefs
Trinn 8. Gå tilbake til hovedmappen «Sushi» i terminalappen.
cd ..
Trinn 9. Opprett SPM-konfigurasjon ved å kjøre denne kommandoen.
make spm
Trinn 10. Fjern objekt- og kjørbare filer. Vær oppmerksom på at du må kjøre kommandoen «make clean» når du bytter mellom rootful og rootless builds.
make clean
Trinn 11. Kompiler Sushi tweak og generer en rootless DEB-pakke for Dopamine- eller Palera1n -jailbreaks. For rootful build, fjern dette alternativet "THEOS_PACKAGE_SCHEME=rootless".
make do THEOS_PACKAGE_SCHEME=rootless

Trinn 12. Når kompileringsprosessen er fullført, finner du DEB-pakkene (arm, arm64) for tweak-en som ble opprettet med Theos i mappen «packages» som ligger i mappen «Sushi».

Vanlige Theos-kompileringsfeil
Den primære utfordringen man møter når man kompilerer tweaks med Theos, stammer ofte fra bruk av en inkompatibel versjon av Xcode. For eksempel kommer Xcode 15 vanligvis med den nyeste versjonen av iPhone OS SDK, for eksempel iPhoneOS17.2.sdk. Tweaks må imidlertid vanligvis være kompatible ikke bare med iOS 16, men også med tidligere versjoner som iOS 13, iOS 14 og iOS 15. I slike tilfeller blir installasjon av eldre versjoner av Xcode 11.7 en nødvendighet.

Følgende feil kan oppstå når du kjører feil Xcode-versjon:
- ld: advarsel: -multiply_defined er foreldet
- ld: advarsel: ignorerer dupliserte biblioteker: '-lc++'
- ld: rammeverket 'MediaRemote' ble ikke funnet
- clang: error: linkerkommandoen mislyktes med avslutningskode 1 (bruk -v for å se kallet)
- make[4]: *** [/Brukere/.../theos/makefiles/instance/library.mk:52: /Brukere/.../.../.theos/obj/debug/arm64e/....dylib] Feil 1
- feil: 'groupTableViewBackgroundColor' er utdatert: først utdatert i iOS 13.0 [-Werror,-Wdeprecated-declarations] returner [UIColor groupTableViewBackgroundColor];
- .../SDK-er/iPhone017.2.sdk/ System/Bibliotek/Rammeverk/ UIKit.framework/Headers/UIInterface.h:247:48: n