如何将armv6架构添加到Xcode项目?

9
我收到了一个警告,说我的项目需要包含armv6二进制文件,但我不知道该怎么做。一直在谷歌寻找答案,但是没有提供的建议似乎都不适合? 我需要下载armv6以支持我的应用程序吗?还是Xcode已经拥有它,我只需要在项目设置中包含它就可以了? 此外,我的应用程序应支持3.1及以上的操作系统。
我已经在Debug部分的armv6和armv7后面添加了i386,但我不知道这是否可以解决问题。对于具有更多经验的人来说,这是否正确?
架构设置的屏幕截图如下所示:

使用某个未公开的测试版?不行。我们即将上传一个应用程序,必须使用非测试版。话虽如此,我成功通过手动添加来摆脱了“您需要armv6错误”的问题,但仍无法上传。 - James Webster
5个回答

7
请按以下步骤操作:
  1. 在你的图片中,选择级别并改为“合并”
  2. 点击标准(armv7) $(ARCHS_STANDARD_32_BIT)
  3. 选择“其他”
  4. 点击“$(ARCHS_STANDARD_32_BIT)”后点击“-”以删除它
  5. 点击“+”以添加新项目
  6. 输入“armv6”
  7. 再次点击“+”
  8. 输入“armv7”
  9. 单击任意位置完成
希望这可以帮助你。我也曾遇到同样的问题,我尝试了这个方法,它对我有用。

终于,问题得到解决了! - wouterds

3

我可以在旧的第一代iPhone上运行我的代码,只需在架构中使用字符串armv6 armv7,而不是使用$(ARCHS_STANDARD_32_BIT),并将"Build Active Architecture Only"设置为YES。


如果你遇到了这样的错误信息:“Error launching remote program: failed to get the task for process 1837”,尝试更改发布版本。 - Teofilo Israel Vizcaino Rodrig

2
在项目设置中,选择“标准”架构(而不是“优化”)。这样可以允许您选择“armv6”作为活动架构。这意味着一旦上架应用商店,它也应该能在旧设备上运行(除非有其他废弃的功能)。
将基本SDK更改为iOS设备4.x或更低版本,以便您可以看到您的armv6架构。

将您的基础SDK更改为iOS 4.x或更低版本。 - Praveen S
我在XCode 4.2中只有5.0作为Base SDK的选项。 - Talon

1

我刚遇到了同样的问题。我加载了一些旧的XCode项目,它们可以在模拟器上编译和运行得很好,但是一旦你尝试在设备上运行或调试(在我的情况下是iTouch v2),它就会简单地说正在运行,然后说应用程序退出。没有错误,没有日志。

感谢iOS开发者论坛上的某个人让我找到了正确的方向。在过去的几个XCode版本中的某个时刻(不包括OSX Lion的XCode版本,因为我只能访问OSX Snow Leopard),苹果改变了项目的设置方式,即使是已经加载的旧项目也是如此。

标准架构以前包括arm6和arm7,但至少在XCode 4.2标准中现在只包括Arm 7 $(ARCHS_STANDARD_32_BIT),并且显然还重置了旧项目的设置。由于我使用模拟器,这对我来说是不被注意到的。

我尝试将配置字符串更改为“arm6 arm7”,但这并没有起作用。然而,返回的错误包含了解决方案(至少对我来说是这样,希望其他仍然遇到这个问题的人也有所帮助)。

在XCode 4.2中,如果您希望构建到旧硬件(如v1和v2设备),只需将项目设置的架构更改为$(VALID_ARCHS),该设置默认为Arm6和Arm7的旧标准。
正如先前提到的,您可能需要将“仅构建活动架构”选项设置为“是”以进行调试(但我尚未确认是否需要此操作)。
我希望这可以帮助任何仍然遇到此问题的人,并为打扰此线程而道歉。

0

这是因为您使用了新的iOS 5 SDK。苹果从标准架构中删除了armv6架构。

您可以在我之前开启的线程上获得更多信息。


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