7

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

我对这个通用二进制文件的真正工作原理有几个疑问:

1) 当我要提交应用程序二进制文件以供审核时,我应该将什么配置设置为构建目标?如果我将其设置为“Device - 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 的手机上时,我会收到一条错误消息,指出手机的操作系统未更新。

谢谢!

4

2 回答 2

13

我们的第一个通用应用程序今天刚刚获得批准并在 App Store 发布,所以我们成功使用了以下设置:

架构
架构:优化(armv6 armv7)
基础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。

于 2010-05-19T08:43:53.897 回答
0

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

这允许它使用 3.2 SDK 编译并在运行 3.1 的 iPhone 上运行

除了上述更改之外,我在问题中的设置似乎是将应用程序配置为作为通用二进制文件提交所需的设置。我还没有做到,但我相当有信心。

如果我错了,请纠正我。

于 2010-05-19T07:32:54.363 回答