iOS 应用提交:缺少 64 位支持

Posted

技术标签:

【中文标题】iOS 应用提交:缺少 64 位支持【英文标题】:iOS app submission : missing 64-bit support 【发布时间】:2015-01-03 14:43:53 【问题描述】:

我昨天发送了一个应用程序进行审核,没有问题。然后我意识到我需要做的修复很少(将地图的最大缩放级别从 19 更改为 18,仅此而已),所以我从 iTunes Connect 中删除了二进制文件,并尝试重新提交。

现在我收到了这个警告:

我不明白为什么,因为我的架构是:

架构:armv7 有效架构:armv6、armv7、armv7s、arm64

应用程序在模拟器中运行良好。如果我尝试按照警告中的建议使用标准架构(armv7、arm64),那么应用程序将无法构建,我会得到:

架构 x86_64 的未定义符号 ld:未找到架构 x86_64 的符号

我正在使用 lib route-me,并且我设置了相同的架构设置。

【问题讨论】:

我们也有这个问题。 :( 也是从昨天开始的? 1) 更改后尝试清除 Xcode 的 DerivedData; 2) 也许您使用的是旧的外部 api、sdk、框架等 @Tim 你解决了这个问题吗?你能发布解决方案吗? 嗨,对不起,我没有找到解决方案,我不再从事这个项目了。目前这只是一个警告,所以我已经能够提交应用程序了。 【参考方案1】:

像这样使用“Standard architectures”:

架构:“标准架构”arm7、arm64 有效架构:“arm64”、armv7... 仅构建活动架构 - (特别是...如果您连接的设备不兼容 arm64)

像这样:

此外,众所周知,从 mac 上拔下 iphone 和 ipad 会有所帮助,尤其是在它们是 32 位版本的情况下。

【讨论】:

感谢您的回答,但正如我的问题中所述,我已经尝试过了,并且该项目无法使用此设置进行编译:/ @Tim,是的,我在 Architechtures 也有 armv7 and arm64。尽管如此,在验证应用提交时仍会出现缺少 64 位支持的警告。 @NAZIK 你在两行(架构和有效架构)中都有 arm64 吗?我有同样的错误,这就是解决方案 @Tim 尝试清理您的 DerivedData 并检查您最新的外部框架或 SDK 是否支持 64 位 另外,在归档最终版本时,请确保您的设备未连接。请参阅下面的@powertoold 答案(***.com/a/26848865/1715004)【参考方案2】:

确认正确的架构后,确保在归档最终构建以提交到 App Store 时您的设备未连接到计算机。

出现此警告的原因是您连接的 DEVICE 可能不兼容 arm64。

【讨论】:

脱帽致敬! :D 你节省了我的时间 大帮助!!在这一点上为我节省了很多时间。升级旧应用的好技巧。 我相信如果您将构建设置 Build Active Architecture Only 更改为 No,您可以保持非 64 位设备的连接。无论连接什么设备,这都会强制 xcode 构建 64 位二进制文​​件。 除了@jxmallett 的回答,确保您的Scheme 配置存档设置为Release,其中Build Active Architecture 设置为No。 Set Archive Scheme 仅供参考,我必须拔掉我的设备,切换到模拟器,然后切换回“ios 设备”才能正常工作。【参考方案3】:

正如托尼所写,在这两行中都有这些设置很重要。 由于我的(显然是你的)项目是在 arm64 添加到标准之前创建的,因此即使它显示为标准,它也不会反映在“有效架构”中。

我做了什么:

我去了项目(与目标)配置 在有效架构中输入“arm64”(它会自动反映在目标和架构中

在清理/构建之后,我什至收到一些关于将浮点数不当转换为 CGFloat 等的警告,因此显然应用了这些设置。

验证警告也消失了!

【讨论】:

>未反映在“有效架构”中,即使它显示为标准这是我的重点。谢谢! 如果它对其他人有帮助,我必须同时更改 Project 和 Target 才能开始工作 @djburdick 谢谢。当没有其他方法时,这对我有用。【参考方案4】:

从 Mac 上拔下您的物理设备。在 XCode on device list 中选择 iOS Device 并再次创建 Archive。它对我有用。

【讨论】:

【参考方案5】:

今天我通过以下步骤解决了这个问题:

建筑设置:

架构:标准架构(arm7,arm64) - $(ARCH_STANDARD)

有效架构: armv7 armv7s arm64

    在连接 iPhone 的情况下清理和构建您的应用 断开您的 iPhone 并检查顶部栏是否在“iOS 设备”中 存档 验证并提交

【讨论】:

@Timuçin。抱歉我回复晚了,你是对的:armv7 armv7s arm64。【参考方案6】:

只需使用最新的 xCode 版本创建一个新项目并找到构建设置。使用最新版本创建的新项目默认支持64位。

【讨论】:

不到 2% 的人使用 iOS 6 或更低版本。 developer.apple.com/support/appstore【参考方案7】:

好吧,这太疯狂了。 我尝试了每一个单个答案。但只有当我在有效架构中将arm64 放在armv7armv7s 之前时,它才有效。

附: :xcode version : 7.2

【讨论】:

是的。只有在连接设备之后,才会显示实际的错误日志。然后出现了一些已弃用且需要(红色)修复的代码行以及 RSA 库的一些问题。【参考方案8】:

我通过改变解决了问题,

架构:arm7,arm64

有效架构:arm7,arm64

仅构建活动架构:是

【讨论】:

【参考方案9】:

我通过配置提交成功作为图像:

(使用真实设备存档)

【讨论】:

应该将发布模式设置为 no【参考方案10】:

摆脱所有警告。一遍又一遍地经历一切。在上面找到了一个单词的答案。

“仅构建活动架构 - 否(特别是...如果您连接的设备不兼容 arm64)”

我的 iPad 不是 64 位的。为构建活动架构输入否,我的提交工作!

【讨论】:

【参考方案11】:

将您的 iOS 开发目标更改为至少 5.1.1,或者删除标准架构设置并重新应用它。您可能已经看到 arm64 与您的构建目标不兼容的警告。在概览页面上,检查构建和目标“部署目标”设置。在我的例子中,目标是 6.0,但项目是 5.0。

另外,在您的目标和项目中检查“有效架构”。我在项目上有正确的设置,但在目标上没有。在此之后,它对我有用。

在框左上角的概览页面上切换项目/目标。

【讨论】:

你真的是说 5.1.1? 5.1 还不够新? 好久不见。我不知道也不记得这其中的逻辑。只需执行这些步骤,某些东西可能会回到正确的位置。摆弄架构和提到的所有页面。【参考方案12】:

请检查构建活动架构选项。将其设置为否。 这个对我有用。

【讨论】:

以上是关于iOS 应用提交:缺少 64 位支持的主要内容,如果未能解决你的问题,请参考以下文章

为啥上传到 iTunes 连接时出现缺少 64 位支持?

iTunes 应用上传错误

错误 ITMS-90086 缺少 64 位支持 Xcode 6.4 和 Cordova 2.9.1

工作包上的 ITMS-90086 + ITMS-90203 错误

使用 Xcode 7 提交应用程序:错误 ITMS-90533 缺少架构。扩展包需要“arm64”的 UIRequiredDeviceCapabilities 值

Flutter iOS 应用提交问题警告:缺少推送通知权利