为什么我的应用程序只构建 arm64 slice?

Why is my app only building the arm64 slice?

我的 iOS 应用具有以下构建设置:

然而,当我尝试将应用程序提交到商店时,我收到此错误:

如果我按照错误提示将 arm64 添加到 UIRequiredDeviceCapabilities,我在提交时会收到以下消息:

为什么第一个存档只包含 arm64 slice?

我的项目确实包含几个其他项目(RestKit 和 CocoaTouchBarcodes),但这些项目的构建设置看起来与我的相同。我的项目还链接到 Google Analytics 库。我已经确认它是最新版本。

什么可能导致我的问题?

你有没有插入设备?

-如果您插入了设备,则该设备的架构是活动架构,因此您需要拔下该设备。

也试试;

-将目标和项目的 "Build Active Architecture Only" 设置为否。

事实证明,我的项目而非目标的 AppStore 有效架构设置为 "armv7, arm64"。问题是那里的逗号。我一定是在某个时候手动输入架构时添加了它。去掉逗号后,armv7切片构建,应用商店提交成功。

我在提交 tvOS 应用程序时遇到了同样的问题,对我有帮助的是将其添加到所有 cocoapods 和框架 plists 中:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

经过一些挖掘搜索我明白了:

  1. “...给定键的存在表示需要相应的功能”
  2. ".. 省略键表示不需要该功能,但如果该功能存在,应用程序能够 运行"

因此,如果您输入 armv7,则与 only armv7 devices can run it 相同。可能在您的应用程序的先前版本中,您支持所有设备。所以只需删除密钥 armv7,您的应用程序将能够支持所有类型的设备(armv7 和 arm64)。

  • 注意支持的架构