iOS 6 Xcode 4.5不支持架构armv7s。

8
尝试将应用进行Ad Hoc发布归档时,出现以下警告信息:

有两个原因让我无法确定为什么会出现这种情况:
  • 我使用的唯一非Foundation框架是Facebook SDK,而且是最新版本
  • 上周我成功地完成了应用程序的归档,自那以后唯一改变的都是代码。
此外,我尝试过插入和未插入iPhone 5的方式进行归档,但在两种方式下都收到了错误信息。
请问有人知道如何解决这个问题吗?

你是否检查了构建设置中选择的应用程序架构? - iDev
1
奇怪。我今天在两个应用程序中(均为v1.1更新),之前已发布包括armv7和armv7s,出现了相同的错误... - Jonny
请确保在项目和目标架构设置中选择了相同的基础 SDK 选项。 - Rameez SOOMRO
7个回答

7

我可以通过将“Build Settings -> Build Active Architecture Only”的状态从“否”更改为“是”,来存档和验证我的项目。


5
如果放入归档文件的架构是armv7而不是armv7s,那么本质上就相当于从“架构”中移除armv7s。 - Jonny

7

快速解决方案是:

从项目 -> 构建设置 -> 架构中移除 armv7s。

更新 ::

现在将构建设置中的“Build Active Architecture”更改为“No to Yes”。但是,即使这也不是解决此问题的纯解决方案。


2
但这并不是一个真正的解决方法。我遇到了与上述相同的问题,并希望完全支持iPhone5。 - Steve Simitzis
然后,您需要使用armv7s构建所有库,还要获取最新的第三方库,如AdMob、Urban Airship等,这样您就不必进行这些快速修复了。 - S.P.
1
Xcode 4.5.2 似乎已经更新了库,因此在更新到 Xcode 4.5.2 后再尝试可能是值得的。 - user1046037
1
是的,那就是问题所在。Xcode 4.5.1 在验证过程中出现了临时性故障,似乎是被苹果的服务器触发了(苹果错误ID 12240727)。4.5.2 版本则没有这个问题。 - Steve Simitzis

5
今天我提交我的应用程序(更新)到App Store时遇到了同样的问题。
我清楚地记得,上一个版本是同时设置了armv7和armv7s并成功提交的,但现在Organizer告诉我:
“iPhone/iPod Touch:应用程序可执行文件包含不支持的架构:armv7s”
删除armv7s很简单,但我的应用程序是通用的,去掉armv7s后是否能在所有iOS设备上运行(例如iPhone 5)?什么时候应该使用armv7s进行构建?

1
同样的效果在这里也是一样的... http://stackoverflow.com/questions/12899451/iphone-ipod-touch-application-executable-contains-unsupported-architectures?lq=1 上的某个人说,你不会得到iPhone5的全部性能,但你的应用程序仍然可以在上面运行。 - domsom

2

我也遇到了同样的问题,应用在之前通过了验证,但在进行了快速代码更改后,无法使用。这可能与iPod有关吗?似乎是最近的问题,从昨天开始。


1
我可以确认这一点。之前可以成功提交更新的应用现在也无法通过我的验证。 - joshholat

1

获得与21k相同的结果。上周我提交了一个包含armv7armv7s的二进制文件到应用商店,并且它通过了验证和审核。现在我尝试使用完全相同的项目设置(除了通常的版本号增加)提交同一应用的更新,但是它未能通过验证。

事实上,我尝试验证上周的存档应用程序,现在也收到相同的错误。因此,应用商店的某些内容必须已更改。


0

前往项目 ---> 构建设置,然后向下滚动到架构设置。

您可能会在架构下看到值为 $(ARCHS_STANDARD_32_BIT)。

如果是这样,请双击 $(ARCHS_STANDARD_32_BIT),选择它,然后单击减号按钮将其删除。然后单击加号按钮,输入 armv7 并按 Enter 键。

现在已经删除了不支持的 armv7s。再试一次,应该就没问题了。


-1

从菜单“Build settings > Architectures”中删除armv7s架构。此时,有效的架构应该只剩下amrv7s和amrv7。只删除以s结尾的架构。如果菜单未出现,请注意搜索栏中设置为“全部”和“组合”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接