我昨天发送了一个应用程序进行审核,没有问题。然后我意识到我需要做的修复很少(将地图的最大缩放级别从 19 更改为 18,仅此而已),所以我从 iTunes Connect 中删除了二进制文件,并尝试重新提交。
现在我有这个警告:
https://i.stack.imgur.com/TXpQT.png
我不明白为什么,因为我的架构是:
架构:armv7
有效架构:armv6、armv7、armv7s、arm64
该应用程序在模拟器中运行良好。如果我尝试按照警告中的建议使用标准架构(armv7、arm64),那么应用程序将无法构建,我会得到:
架构 x86_64 的未定义符号
ld:未找到架构 x86_64 的符号
我正在使用 lib route-me,并设置了相同的架构设置。
像这样使用“Standard architectures
”:
架构:“标准架构”arm7、arm64
有效架构:“arm64”,armv7 ...
仅构建活动架构 - 否(特别是......如果您连接的设备不兼容 arm64)
像这样:
https://i.stack.imgur.com/kbPz5.jpg
此外,众所周知,从 mac 上拔下 iphone 和 ipad 会有所帮助,尤其是在它们是 32 位版本的情况下。
确认正确的架构后,请确保您的设备在归档最终构建以提交到 App Store 时未连接到您的计算机。
出现此警告的原因是您连接的 DEVICE 可能不兼容 arm64。
Build Active Architecture Only
更改为 No
,我相信您可以保持非 64 位设备的连接。无论连接什么设备,这都会强制 xcode 构建 64 位二进制文件。
正如托尼所写,在这两行中都有这些设置很重要。由于我的(显然是您的)项目是在将 arm64 添加到标准之前创建的,因此即使它显示为标准,它也不会反映在“有效架构”中。
我做了什么:
我去了项目(与目标)配置
在有效架构中键入“arm64”(它会自动反映在目标和模式中
在清理/构建之后,我什至收到一些关于将浮点数不当转换为 CGFloat 等的警告,因此显然应用了这些设置。
验证警告也消失了!
https://i.stack.imgur.com/HEnT9.png
从 Mac 上拔下您的物理设备。在 XCode on device list 中选择 iOS Device 并再次创建 Archive。它对我有用。
今天我通过以下步骤解决了这个问题:
建筑设置:
架构:标准架构(arm7,arm64) - $(ARCH_STANDARD)
有效架构:armv7 armv7s arm64
清理并在连接 iPhone 的情况下构建您的应用断开您的 iPhone 并检查顶部栏是否在“iOS 设备”存档中验证并提交
只需使用最新的 xCode 版本创建一个新项目并找到构建设置。使用最新版本创建的新项目默认支持 64 位。
https://i.stack.imgur.com/3Oay9.png
好吧,这太疯狂了。我尝试了每一个单个答案。但它只有在我将 arm64
放在 Valid Architectures 中的 armv7
和 armv7s
之前才有效。
PS:xcode version : 7.2
我通过改变解决了这个问题,
架构:arm7、arm64
有效架构:arm7,arm64
仅构建活动架构:是
https://i.stack.imgur.com/qE2hF.png
(用真机存档)
摆脱所有警告。一遍又一遍地经历一切。在上面找到了一个单词的答案。
“仅构建活动架构 - 否(特别是......如果您连接的设备不兼容 arm64)”
我的 iPad 不是 64 位的。为构建活动架构输入否,我的提交工作!
将您的 iOS 开发目标更改为至少 5.1.1,或者删除标准架构设置并重新应用它。您可能已经看到 arm64 与您的构建目标不兼容的警告。在概览页面上,检查构建和目标“部署目标”设置。就我而言,目标是 6.0,但项目是 5.0。
此外,在您的目标和项目中检查“有效架构”。我在项目上有正确的设置,但在目标上没有。在此之后,它对我有用。
在框左上角的概览页面上切换项目/目标。
请检查构建活动架构选项。将其设置为否。这个对我有用。
armv7 and arm64
。尽管如此,在验证应用程序是否提交时仍会出现缺少 64 位支持的警告。