2012-03-26 1 views
1

Я разрабатываю приложение для jailbroken устройства iOS.
Я хотел бы предназначаться стенд iPhone 3G (IOS 4.3.x) и iPhone 4/4S (IOS 5.x)Как запускать жирные двоичные файлы на iOS 5.1/iPhone 4

Я успешно генерироваться жир исполняемые файлы с 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 

Running это на iPhone 3G ОК Запуск этого на iPhone 4, я получил

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

Во время работы в ARMv7 строить только на iPhone 4 в норме.

Что мне не хватает?

ответ

1

ЧАСТИЧНО РЕШИТЬ:

Проблема заключается в том, что ldid не может подписать жира двоичные файлы. Подробнее см. Building for Jailbroken devices on iOS SDK 4.2.

Я нашел этот ldid исходного код, который должен подписать жир двоичных файлов https://github.com/rpetrich/ldid но это и не работа для меня (ldid висит во время выполнения)

Решения, вероятно, заключается в использовании Lipo инструмента для разделения двоичного кода в два исполняемые файлы, ldid их отдельно и собирать в один исполняемый файл. (Не работает для меня тоже, но я работаю над этим)

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

Я разговаривал ни с Optimo или BigBoss об этом один раз, и они, кажется, думают, что ваш общий подход может быть использован (сплит с 'липо ',' ldid -S' по отдельности, затем снова соберите). Но я был счастлив создать только armv6, поэтому я никогда не проверял это. – Nate

Смежные вопросы