在同一个ipa文件中支持armv6和armv7

5
我有一个这样配置的XCode项目:
  • 项目格式:XCode 3.1兼容
  • 架构:标准(armv6 armv7)
  • 基础SDK:最新的iOS(当前设置为iOS 4.2)
  • 仅构建活动架构:未选中
  • 有效架构:armv6 armv7
我的问题是:生成的二进制文件(.ipa)是否包含两个可执行文件 - 每个架构一个,还是每个架构只包含一些不同的目标文件,或者分割得更细?
只是好奇。谢谢。
2个回答

10

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

file myApp.app/myApp

在终端中运行该命令,它将打印其包含的内容,以供您进行双重检查。 它应该列出2种架构。


5
它将生成两个二进制文件,然后将它们粘合在所谓的“fat binary”中。您可以使用lipo命令自己尝试将多个架构粘合在同一个可执行文件中。
澄清一下:您将在单个文件内拥有两个可执行文件。逻辑上这是一个单一可执行文件(两者都是您的应用程序),但一个版本针对一个架构,另一个版本针对另一个架构。

1
必须存在一些重叠或重复使用,因为单个架构二进制文件大小为2.2MB,而双架构二进制文件大小为2.7MB,这不是微不足道的差异,但也不是两倍。 - Rayfleck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接