构建/测试通用iPhone / iPad应用程序

时间:2010-05-19 02:47:13

标签: iphone ipad universal-binary

我有一个项目配置(我认为)来生成Universal二进制文件。基本SDK设置为3.2,部署目标设置为3.1。目标设备系列是iPhone / iPad,架构是armv6 armv7。

我有一些关于这个通用二进制文件是如何工作的问题:

1)当我想提交应用程序二进制文件以供审阅时,我应该将哪些配置设置为构建目标?如果我将其设置为“设备 - 3.1”,我会收到一条警告"warning: building with Targeted Device Family" that includes iPad('1,2') requires building with the 3.2 or later SDK"。但是,如果我使用SDK 3.2构建,它是否仍然可以在带有OS 3.1的iPhone上运行? 什么是适合设备和架构的配置(arm6 / arm7)?

2)如何测试上面的场景(使用SDK 3.2构建,但安装在运行OS 3.1的设备上)?如果我使用SDK 3.2构建,当我尝试将其安装在带有OS 3.1的手机上时,我会收到错误消息,说明手机的操作系统未更新。

谢谢!

2 个答案:

答案 0 :(得分:13)

我们的第一款通用应用程序今天刚刚在App Store中获得批准和发布,因此以下是我们成功使用的设置:

<强>架构
架构:优化(armv6 armv7)
Base SDK :iPhone设备3.2
仅构建活动架构:未选中 有效架构 :(空)

<强>部署
目标设备系列:iPhone / iPad
iPhone OS部署目标:iPhone OS 3.0
(您可以将其设置为任何iPhone 3.x操作系统,但我们希望尽可能使用最旧的设备。必须为3.0或更高版本,2.x对于通用应用程序无效。)

确保您还检查了目标本身的这些设置(项目 - >编辑活动目标“AppName”);上传到iTunes Connect时的初始问题是因为目标本身的 iPhone OS部署目标仍设置为2.2.1。

答案 1 :(得分:0)

因此,除了将“有效架构”设置设置为“armv6 armv7”之外,关键似乎是“架构”设置被设置为“优化(arm6 arm7)”。

这允许它使用3.2 SDK进行编译,并在运行3.1

的iPhone上运行

我在问题中的设置,除了上述更改外,似乎还需要将应用程序配置为通用二进制文件。我还没有这样做,但我相当自信。

如果我错了,请纠正我。