Hur man kompilerar Theos Tweak

Att kompilera tweaks med Theos-bibliotek kan vara en utmaning för nybörjare, vilket ofta leder till många fel och eventuella kompileringsmisslyckanden. Att söka efter lösningar online i sådana scenarier kanske inte ger tillfredsställande resultat. Den här handledningen syftar till att vägleda dig genom kompileringsprocessen för tweaks för både rootless och rootful-miljöer, vilket resulterar i skapandet av installationsklara DEB-paket.
En betydande del av jailbreak-communityn är beroende av jailbreak-tweaks med öppen källkod. Dessa tweaks fungerar inte bara som inspirerande demonstrationer av iOS-systemmodifieringar utan också som omfattande kunskapsbaser för blivande tweak-utvecklare. Många av dessa tweaks måste kompileras med Theos, ett plattformsoberoende byggsystem för att skapa iOS-tweaks.
Theos-biblioteken är enkelt installerade på flera plattformar, som iOS-enheter, macOS, Linux och Windows-datorer. Denna flexibilitet gör det möjligt för utvecklare att kompilera jailbreak-tweaks utan ansträngning över en mängd olika operativsystem. I den här guiden ger vi en steg-för-steg-genomgång för att kompilera en tweak med Theos och distribuera DEB-paket för installation.

I den här handledningen om hur du kompilerar en tweak med Theos kommer vi att använda källkoden för Sushi-tweaket . Sushi är utformat för att förbättra din mediekontrollupplevelse på jailbreakade enheter. Den introducerar en anpassningsbar banner, inspirerad av Dynamic Island, som smidigt övergår till en mediekontrollvy genom animationer när den låt som spelas just nu ändras.
Sushi tweak kan kompileras med Theos för både rootless och rootful jailbreaks från iOS 13 upp till iOS 16. Dopamine 2 och Palera1n stöds också.
Hur man kompilerar en tweak med theos för iOS
För att kompilera en tweak med Theos rekommenderas det att använda den senaste versionen av biblioteket som är kompatibel med Sonoma 14.3.1. Om du vill säkerställa kompatibilitet med iOS-versioner före 14.0 är en nedgradering till Xcode 11.7 nödvändig. Icke desto mindre kommer vi för vår nuvarande uppgift att använda Xcode 14.3.1. Det är värt att notera att Xcode 15 begränsar kompileringen av de flesta jailbreak-tweaks.
Därför stöder inte denna nyare verktygskedja byggnation för det gamla ABI. Om du vill behålla stödet för tidigare versioner kan du hämta verktygskedjan från en tidigare Xcode-utgåva och växla mellan den och den nyare verktygskedjan efter önskemål genom att ställa in Xcode-kommandoradsverktygsversionen.
För att kompilera en jailbreak-tweak med theos, följ stegen:
Steg 1. Installera theos på din PC, Mac eller iOS-enhet enligt vår guide.
Steg 2. Installera iPhoneOS16.4.sdk genom att ladda ner Xcode 14.3.1 eller Xcode 11.7 direkt från Apples servrar. Du måste autentisera med ditt Apple-ID för att ladda ner.
Steg 3. Öppna terminalappen och extrahera Xcode_14.3.1.xip med följande kommando. Efter extraheringen, byt namn på appen så att den inte kommer i konflikt med din primära installation av Xcode.
xip -x Xcode_14.3.1.xip
Steg 4. Flytta Xcode_14.3.1.app till mappen Program.

Steg 5. Ändra din valda version av kommandoradsverktygen i Xcode. Följande kommando ändrar tillfälligt versionen av dina kommandoradsverktyg för endast den här terminalsessionen.
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
Om du behöver använda den senaste Xcode-verktygskedjan från kommandoraden, använd --reset:
sudo xcode-select --reset
Steg 6. Klona Sushi tweak-arkivet från GitHub till din dator.
git clone https://github.com/Skittyblock/Sushi

Steg 7. Sushi-tweak använder några ytterligare klasser för användning i preference-paket. Klona SkittyPrefs från GitHub till mappen "prefs" inuti mappen "Sushi".
cd Sushi && cd prefs && git clone https://github.com/Skittyblock/SkittyPrefs
Steg 8. Gå tillbaka till huvudmappen "Sushi" i terminalappen.
cd ..
Steg 9. Skapa SPM-konfigurationen genom att köra detta kommando.
make spm
Steg 10. Ta bort objekt- och körbara filer. Tänk på att du måste köra kommandot "make clean" när du växlar mellan rootful och rootless builds.
make clean
Steg 11. Kompilera Sushi tweak och generera ett rootless DEB-paket för Dopamine- eller Palera1n -jailbreaks. För rootful build, ta bort alternativet "THEOS_PACKAGE_SCHEME=rootless".
make do THEOS_PACKAGE_SCHEME=rootless

Steg 12. När kompileringsprocessen är klar hittar du DEB-paketen (arm, arm64) för tweak-funktionen som skapades med Theos i mappen "packages" som finns i mappen "Sushi".

Vanliga Theos-kompileringsfel
Den största utmaningen man stöter på när man kompilerar tweaks med Theos beror ofta på att man använder en inkompatibel version av Xcode. Till exempel kommer Xcode 15 vanligtvis med den senaste versionen av iPhone OS SDK, till exempel iPhoneOS17.2.sdk. Tweaks behöver dock vanligtvis vara kompatibla inte bara med iOS 16 utan även med tidigare versioner som iOS 13, iOS 14 och iOS 15. I sådana fall blir installation av äldre versioner av Xcode 11.7 en nödvändighet.

Följande fel kan uppstå när fel Xcode-version körs:
- ld: varning: -multiply_defined är föråldrad
- ld: varning: ignorerar dubblettbibliotek: '-lc++'
- ld: ramverket 'MediaRemote' hittades inte
- clang: error: länkarkommandot misslyckades med avslutningskod 1 (använd -v för att se anrop)
- make[4]: *** [/Användare/.../theos/makefiles/instance/library.mk:52: /Användare/.../.../.theos/obj/debug/arm64e/....dylib] Fel 1
- fel: 'groupTableViewBackgroundColor' är föråldrad: först föråldrad i iOS 13.0 [-Werror,-Wdeprecated-declarations] returnera [UIColor groupTableViewBackgroundColor];
- .../SDK:er/iPhone017.2.sdk/System/Bibliotek/Ramverk/UIKit.framework/Headers/UIInterface.h:247:48: n