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


91

我昨天发送了一个应用进行审核,没有问题。然后,我意识到我有一点点要做(将地图的最大缩放级别从19更改为18,别无其他),所以我从iTunes Connect中删除了二进制文件,然后尝试重新提交。

现在我有这个警告:

warning_xcode

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

  • 架构:armv7
  • 有效架构:armv6,armv7,armv7s,arm64

该应用程序在模拟器中运行良好。如果我尝试按照警告中的建议使用标准体系结构(armv7,arm64),则该应用程序将无法构建,并且我得到:

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

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


我们也有这个问题。:(
阿西克·阿卜杜拉2014年

还因为昨天才?
蒂姆·奥丁

1)更改后尝试清除Xcode的DerivedData;2)也许您使用的是较旧的外部api,sdk,框架等
TonyMkenu 2014年

@Tim您能解决这个问题吗?您可以为此发布解决方案吗?
user2056563 2014年

嗨,抱歉,我没有找到解决方案,并且我不再从事这个项目。目前,这只是一个警告,因此我已经能够提交该应用程序。
蒂姆·奥丁

Answers:


106

Standard architectures像这样使用“ ”:

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

像这样:

在此处输入图片说明

  • 此外,众所周知,从Mac上拔下iPhone和iPad会有所帮助,特别是如果它们是32位版本。

2
感谢您的回答,但正如我的问题中所述,我已经尝试过了,该项目无法使用此设置进行编译:/
Tim Autin 2014年

3
@Tim,是的,我也曾armv7 and arm64参与过建筑设计。仍然,在验证应用程序提交时会丢失64位支持警告。
阿齐克·阿卜杜拉

@NAZIK您在这两行中都具有arm64(体系结构和有效体系结构)吗?我遇到了同样的错误,这就是解决方案
TonyMkenu 2014年

@Tim尝试清理您的DerivedData并检查您的最新外部框架或SDK是否具有64位支持
TonyMkenu 2014年

3
另外,归档最终版本时,请确保未连接设备。见@powertoold答案波纹管(stackoverflow.com/a/26848865/1715004
菲利普·博尔赫斯

68

确认正确的体系结构后,在归档最终版本以提交到App Store时,请确保您的设备未连接到计算机。

出现此警告的原因是因为您连接的设备可能与arm64不兼容。


4
脱下帽子!:D您节省了我的时间
Vaibhav Limbani 2014年

1
大帮助!为我节省了很多时间。升级旧应用的好技巧。
哈里(Harry)2015年

我相信你可以保持连接你的非64位的设备,如果你改变构建设置Build Active Architecture OnlyNo。无论连接什么设备,这都将强制xcode构建64位二进制文​​件。
jxmallett 2015年

3
除了@jxmallett的答案外,请确保您的Scheme配置存档设置为Release,其中Build Active Architecture设置为No集合存档方案
KarenAnne 2015年

1
仅供参考,我必须拔下设备的电源,切换到模拟器,然后再切换回“ iOS设备”才能正常工作。
nwkeeley 2015年

37

正如Tony所写,在这两行中都具有这些设置很重要。由于我(显然是您的)项目是在arm64加入标准之前创建的,因此即使显示为Standard ,它也不会反映在“ Valid Architectures”中。

我做了什么:

  • 我去了Project(vs.Target)配置
  • 在有效架构中键入 “ arm64”(它会自动反映在目标和模式中

清理/构建后,我什至会收到一些有关将float转换为CGFloat的错误警告,等等,因此显然可以应用这些设置。

验证警告也消失了!

在此处输入图片说明


1
>即使显示为标准,也没有反映在“有效的体系结构”中。这对我来说很重要。谢谢!
罗曼2014年

1
如果它对其他人有帮助,我必须同时更改Project和Target才能开始工作
djburdick

@djburdick谢谢。当我什么都没做时,这对我有用。
戴夫·钱伯斯

27

从Mac上拔下您的物理设备。在“设备上的XCode”列表中,选择“ iOS设备”并再次创建“存档”。它为我工作。


5

今天,我通过以下步骤解决该问题:

建筑设置:

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

有效架构: armv7 armv7s arm64

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

@Timuçin。对不起,我的迟到答复是对的:armv7 armv7s arm64。
Leonel Folmer


2

好吧,这太疯狂了。我尝试了每个答案。但是它只有在我放置在有效架构arm64之前armv7和之中时才armv7s有效。

PS: xcode version : 7.2


1
对。只有这样,并且只有在连接设备之后,才会显示实际的错误日志。然后出现了不建议使用的代码行,并要求对其进行(红色)修复,以及RSA lib的一些问题。
maxweber 2016年

1

我通过改变来解决了这个问题,

体系结构:arm7,arm64

有效架构:arm7,arm64

仅构建活动架构:是


1

我通过config作为镜像提交了成功: 在此处输入图片说明

(已与真实设备存档)


1
应将发布模式设置为“否”
ZYiOS

1

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

“仅构建活动体系结构-否(特别是……如果所连接的设备不兼容arm64)”

我的iPad不是64位。在Build Active Architecture中输入否,我的提交起作用了!


0

将您的iOS开发目标至少更改为5.1.1,或者删除标准体系结构设置并重新应用。您可能已经看到一条警告,指出arm64与构建目标不兼容。在概述页面上,检查构建和目标“部署目标”设置。就我而言,目标是6.0,但项目是5.0。

另外,在目标和项目中都选中“有效的体系结构”。我在项目上有正确的设置,但在目标上没有。在此之后,它为我工作。

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


您真的是说5.1.1吗?5.1还不够吗?
德克

有段时间了。我不知道或不记得这个逻辑。只要执行这些步骤,某些内容可能会恢复原状。摆弄体系结构和提到的所有页面。
user1122069'2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.