Hoe je de theos tweak compileert

Het compileren van tweaks met behulp van Theos-bibliotheken kan een uitdaging zijn voor nieuwkomers, wat vaak leidt tot talloze fouten en uiteindelijk mislukte compilaties. Online zoeken naar oplossingen voor dergelijke scenario's levert mogelijk niet de gewenste resultaten op. Deze tutorial begeleidt je door het compilatieproces van tweaks voor zowel rootless als rootful omgevingen, wat resulteert in de creatie van kant-en-klare DEB-pakketten.
Een aanzienlijk deel van de jailbreakcommunity is afhankelijk van open-source jailbreak-tweaks. Deze tweaks dienen niet alleen als inspirerende demonstraties van iOS-systeemaanpassingen, maar ook als uitgebreide kennisbanken voor beginnende tweakontwikkelaars. Veel van deze tweaks moeten worden gecompileerd met Theos, een cross-platform buildsysteem voor het maken van iOS-tweaks.
De Theos-bibliotheken zijn eenvoudig te installeren op meerdere platforms, zoals iOS-apparaten, macOS, Linux en Windows-pc's. Deze flexibiliteit stelt ontwikkelaars in staat om moeiteloos jailbreak-tweaks te compileren voor verschillende besturingssystemen. In deze handleiding bieden we een stapsgewijze handleiding voor het compileren van een tweak met Theos en het distribueren van DEB-pakketten voor installatie.

In deze tutorial over het compileren van een tweak met Theos gebruiken we de broncode van de Sushi-tweak . Sushi is ontworpen om je mediabediening op jailbreak-apparaten te verbeteren. Het introduceert een aanpasbare banner, geïnspireerd door Dynamic Island, die via animaties vloeiend overgaat in een mediabedieningsweergave wanneer het nummer dat momenteel wordt afgespeeld, verandert.
Sushi tweak kan worden gecompileerd met Theos voor zowel rootless als rootful jailbreaks die draaien op iOS 13 tot en met iOS 16. Dopamine 2 en Palera1n worden ook ondersteund.
Hoe compileer je een tweak met theos voor iOS
Om een tweak met Theos te compileren, is het raadzaam om de nieuwste versie van de bibliotheek te gebruiken die compatibel is met Sonoma 14.3.1. Wil je compatibiliteit met iOS-versies ouder dan 14.0, dan is een downgrade naar Xcode 11.7 noodzakelijk. Voor onze huidige taak gebruiken we echter Xcode 14.3.1. Het is belangrijk om te weten dat Xcode 15 de compilatie van de meeste jailbreak-tweaks beperkt.
Daarom ondersteunt deze nieuwere toolchain het bouwen voor de oude ABI niet. Als u ondersteuning voor eerdere versies wilt behouden, kunt u de toolchain uit een eerdere Xcode-release halen en naar wens tussen deze en de nieuwere toolchain schakelen door de versie van de Xcode-opdrachtregeltools in te stellen.
Om een jailbreak-tweak met theos te compileren, volgt u de volgende stappen:
Stap 1. Installeer theos op uw pc, Mac of iOS-apparaat volgens onze handleiding.
Stap 2. Installeer iPhoneOS16.4.sdk door Xcode 14.3.1 of Xcode 11.7 rechtstreeks van de Apple-servers te downloaden. Je moet je aanmelden met je Apple ID om te kunnen downloaden.
Stap 3. Open de terminal-app en pak Xcode_14.3.1.xip uit met de volgende opdracht. Hernoem de app na het uitpakken zodat er geen conflict ontstaat met je primaire Xcode-installatie.
xip -x Xcode_14.3.1.xip
Stap 4. Verplaats Xcode_14.3.1.app naar de map Programma's.

Stap 5. Wijzig de versie van uw geselecteerde Xcode-opdrachtregelhulpprogramma's. De volgende opdracht wijzigt tijdelijk de versie van uw opdrachtregelhulpprogramma's, alleen voor deze terminalsessie.
export DEVELOPER_DIR=/Applications/Xcode_14.3.1.app/Contents/Developer
of permanent
sudo xcode-select -switch /Applications/Xcode_14.3.1.app/Contents/Developer
Als u de nieuwste Xcode-toolchain vanaf de opdrachtregel wilt gebruiken, gebruikt u --reset:
sudo xcode-select --reset
Stap 6. Kloon de Sushi tweak repository van GitHub naar je computer.
git clone https://github.com/Skittyblock/Sushi

Stap 7. Sushi tweak gebruikt enkele extra klassen voor gebruik in voorkeursbundels. Kloon SkittyPrefs van GitHub naar de map "prefs" in de map "Sushi".
cd Sushi && cd prefs && git clone https://github.com/Skittyblock/SkittyPrefs
Stap 8. Ga terug naar de hoofdmap "Sushi" in de terminal-app.
cd ..
Stap 9. Maak een SPM-configuratie door deze opdracht uit te voeren.
make spm
Stap 10. Verwijder objecten en uitvoerbare bestanden. Houd er rekening mee dat u de opdracht "make clean" moet uitvoeren wanneer u schakelt tussen rootful en rootless builds.
make clean
Stap 11. Compileer Sushi tweak en genereer een rootless DEB-pakket voor Dopamine of Palera1n jailbreaks. Verwijder voor een rootful build de optie "THEOS_PACKAGE_SCHEME=rootless".
make do THEOS_PACKAGE_SCHEME=rootless

Stap 12. Zodra het compilatieproces is voltooid, vindt u de DEB-pakketten (arm, arm64) van de tweak die met Theos is gemaakt in de map "packages" in de map "Sushi".

Veelvoorkomende theos-compilatiefouten
De grootste uitdaging bij het compileren van tweaks met Theos is vaak het gebruik van een incompatibele versie van Xcode. Xcode 15 wordt bijvoorbeeld meestal geleverd met de nieuwste versie van de iPhone OS SDK, zoals iPhoneOS17.2.sdk. Tweaks moeten echter vaak niet alleen compatibel zijn met iOS 16, maar ook met eerdere versies zoals iOS 13, iOS 14 en iOS 15. In dergelijke gevallen is de installatie van een oudere versie van Xcode 11.7 noodzakelijk.

De volgende fouten kunnen verschijnen wanneer u de verkeerde Xcode-versie gebruikt:
- ld: waarschuwing: -multiply_defined is verouderd
- ld: waarschuwing: dubbele bibliotheken negeren: '-lc++'
- ld: framework 'MediaRemote' niet gevonden
- clang: fout: linkeropdracht mislukt met exitcode 1 (gebruik -v om de aanroep te zien)
- make[4]: *** [/Users/.../theos/makefiles/instance/library.mk:52: /Users/.../.../.theos/obj/debug/arm64e/....dylib] Fout 1
- fout: 'groupTableViewBackgroundColor' is verouderd: voor het eerst verouderd in ios 13.0 [-Werror,-Wdeprecated-declarations] return [UIColor groupTableViewBackgroundColor];
- .../SDKs/iPhone017.2.sdk/ Systeem/Bibliotheek/Frameworks/ UIKit.framework/Headers/UIInterface.h:247:48: n