2011-04-20 82 views
4

我配置了一个这样的XCode项目:支持的ARMv6和ARMv7在同一IPA

  • 项目格式:的XCode 3.1兼容
  • 体系结构:标准(ARMv6的ARMv7的)
  • 基地SDK:最新iOS版(当前设置为iOS 4.2的)只有
  • 构建有源体系:未选中
  • 有效Architecures:ARMv6的ARMv7的

我的问题:生成的二进制文件(.ipa)中是否包含2个可执行文件 - 每个体系结构都有一个可执行文件,或者每个体系结构只有一些不同的目标文件,还是更细的碎片?

只是好奇。 谢谢。

回答

9

从你所描述的,ipa应该有一个多架构的二进制与arm6和arm7。您可以在终端中使用file命令进行检查。应用程序包内部的可执行文件将与应用程序具有相同的名称,myApp.app/myApp。输入:

file myApp.app/myApp 

终端将打印它包含的内容供您再次检查。它应该列出2个架构。

5

它会产生两个二进制文件,然后将它们粘在一起成为所谓的“胖二进制文件”。您可以使用lipo命令自己在同一个可执行文件中坚持多个体系结构。

澄清:您将在一个文件内有两个可执行文件。这在逻辑上是单个可执行文件(都是你的应用程序),但是一个版本的目标是一个体系结构,另一个版本的目标是另一个体系结构。

+1

必须有一些重叠或重复使用,因为一个单一的拱形二进制是2.2MB,而一个双拱形二进制是2.7MB,不是一个微不足道的差异,但也不是双倍。 – Rayfleck 2011-04-21 00:43:43

相关问题