2012-03-26 5 views
1

Ich entwickle eine Anwendung für jailbroken iOS-Geräte.
Ich möchte Stand iPhone 3G (iOS 4.3.x) zum Ziel und iPhone 4/4S (iOS 5.x)Wie fette Binärdateien auf iOS 5.1/iPhone 4 laufen lassen

ich erfolgreich Fett Binärdateien mit Xcode 4.3.x

marsu:LatestBuild sst$ otool -h myproduct.armv6 
myproduct.armv6 (architecture armv7): 
Mach header 
    magic cputype cpusubtype caps filetype ncmds sizeofcmds  flags 
    0xfeedface  12   9 0x00   2 20  2664 0x00200085 
myproduct.armv6 (architecture armv6): 
Mach header 
    magic cputype cpusubtype caps filetype ncmds sizeofcmds  flags 
    0xfeedface  12   6 0x00   2 19  2648 0x00000085 

Lauf erzeugt diese auf einem iPhone 3G OK ist Ausführen dieses auf einem iPhone 4, erhielt ich

iPhone:~ root# ./myproduct.armv6 
Killed: 9 

Während die ARMv7 nur auf dem iPhone 4 bauen läuft OK ist.

Was fehlt mir?

Antwort

1

teilweise gelöst:

Problem ist, dass ldid nicht Fett Binärdateien unterzeichnen kann. Weitere Informationen finden Sie unter Building for Jailbroken devices on iOS SDK 4.2.

fand ich diese ldid Quellcode, Fett Binärdateien https://github.com/rpetrich/ldid zu unterschreiben sollte, aber es hat noch Arbeit für mich (ldid zur Laufzeit hängt)

wahrscheinlich

Lösung ist Lipo-Tool zu verwenden, um die binären in zwei aufzuspalten ausführbare Dateien, ldid sie getrennt und wieder in eine ausführbare Datei zusammen. (Gilt für mich auch nicht arbeiten, aber ich bin auf sie)

cd MyApp.app/; 
lipo MyApp -extract armv6 -output MyApp6; 
lipo MyApp -extract armv7 -output MyApp7; 
ldid -S MyApp6; ldid -S MyApp7; 
lipo -create MyApp6 MyApp7 -output MyApp 
+0

ich mit gesprochen entweder Optimo oder BigBoss über diesen ein Mal, und sie haben schienen zu denken, dass Ihr allgemeiner Ansatz verwendet werden könnte (Split mit 'Lipo ',' ldid -S' auf jedem separat, dann wieder zusammenbauen). Aber ich war froh, nur Arm 6 zu produzieren, also habe ich das nie bestätigt. – Nate

Verwandte Themen