我配置了一个这样的XCode项目:支持的ARMv6和ARMv7在同一IPA
- 项目格式:的XCode 3.1兼容
- 体系结构:标准(ARMv6的ARMv7的)
- 基地SDK:最新iOS版(当前设置为iOS 4.2的)只有
- 构建有源体系:未选中
- 有效Architecures:ARMv6的ARMv7的
我的问题:生成的二进制文件(.ipa)中是否包含2个可执行文件 - 每个体系结构都有一个可执行文件,或者每个体系结构只有一些不同的目标文件,还是更细的碎片?
只是好奇。 谢谢。
我配置了一个这样的XCode项目:支持的ARMv6和ARMv7在同一IPA
我的问题:生成的二进制文件(.ipa)中是否包含2个可执行文件 - 每个体系结构都有一个可执行文件,或者每个体系结构只有一些不同的目标文件,还是更细的碎片?
只是好奇。 谢谢。
从你所描述的,ipa应该有一个多架构的二进制与arm6和arm7。您可以在终端中使用file
命令进行检查。应用程序包内部的可执行文件将与应用程序具有相同的名称,myApp.app/myApp。输入:
file myApp.app/myApp
终端将打印它包含的内容供您再次检查。它应该列出2个架构。
它会产生两个二进制文件,然后将它们粘在一起成为所谓的“胖二进制文件”。您可以使用lipo
命令自己在同一个可执行文件中坚持多个体系结构。
澄清:您将在一个文件内有两个可执行文件。这在逻辑上是单个可执行文件(都是你的应用程序),但是一个版本的目标是一个体系结构,另一个版本的目标是另一个体系结构。
必须有一些重叠或重复使用,因为一个单一的拱形二进制是2.2MB,而一个双拱形二进制是2.7MB,不是一个微不足道的差异,但也不是双倍。 – Rayfleck 2011-04-21 00:43:43