2012-03-26 11 views
1

iOSデバイス jailbrokenのアプリケーションを開発中です。
私は成功したのXcode 4.3.xiOS 5.1/iPhone 4でfatバイナリを実行する方法

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 

実行している脂肪バイナリを生成ブースiPhone 3G(iOS版の4.3.x)およびiPhone 4/4S(iOSの5.xの)

をターゲットとしたいのですがiPhone 3Gの上、これはiPhone 4のみを構築したARMv7を実行してもOKですが、私は

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

を受け、iPhone 4上でこれを実行する OKです。

私には何が欠けていますか?

答えて

1

の一部が解決しよう:

問題はldidは脂肪のバイナリを署名することができないということです。 詳細については、Building for Jailbroken devices on iOS SDK 4.2を参照してください。

は、私は脂肪のバイナリ https://github.com/rpetrich/ldid に署名することになっているこのldidソースコードを見つけましたが、それはありませんも私のための作業(ldidは実行時にハングアップ)

ソリューションは、おそらく二つにバイナリを分割するリポツールを使用することですそれらを個別にldidし、1つの実行可能ファイルに再アセンブルします。

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のどちらかと話をしましたが、彼らはあなたの一般的なアプローチが使用できると思ったようです(lipo '、' ldid -S'をそれぞれ別々に作成し、再アセンブルします)。しかし、私はarmv6だけを生産して満足していました。 – Nate

関連する問題