簡體   English   中英

如何在iOS 5.1 / iPhone 4上運行胖二進制文件

[英]How to run fat binaries on iOS 5.1 / iPhone 4

我正在為越獄的 iOS設備開發應用程序。
我想定位iPhone 3G(iOS 4.3.x)和iPhone 4 / 4S(iOS 5.x)的展位

我使用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

可以在iPhone 3G上運行它,可以在iPhone 4上運行

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

運行armv7時,僅在iPhone 4上構建即可。

我想念什么?

部分解決:

問題是ldid無法簽署胖二進制文件。 有關詳細信息,請參見在iOS SDK 4.2上構建越獄設備

我發現了這個ldid源代碼,該源代碼應該對胖二進制文件進行簽名https://github.com/rpetrich/ldid,但是它對我沒有用(ldid在運行時掛起)

解決方法可能是使用lipo工具將二進制文件拆分為兩個可執行文件,分別標識它們並重新組裝為一個可執行文件。 (對我也不起作用,但我正在努力)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM