无法构建模块Darwin - arm64问题

时间:2013-09-22 10:16:16

标签: ios xcode

我开发了我的第一个XCode5 ONLY应用程序,它非常类似于我在4.6上完成的应用程序。它在模拟器和我的iPhone 4,4S和5以及我的2台iPad上运行完美。 但是,当我尝试验证它以提交到App Store时,我得到一堆与arm64相关的错误需要7.0.0或更高版本。我将部署目标设置为6.1,当我在Xcode 5中运行我之前在4.6中启动的应用程序时,这不会发生。 如果我将部署目标更改为7.0,那么一切正常。 这里发生了什么?我需要更改什么才能在6.1上进行验证? 谢谢。 Screengrab

编辑:好的,我将构建设置中的架构更改为标准(armv7,armv7s),删除arm64,一切正常。这是正确的做法吗?据推测,它仍将在iPhone 5S上运行,但不在64位运行。正确的吗?

7 个答案:

答案 0 :(得分:34)

你还不能提交64位并仍然支持iOS 6.但是你可以在下个月使用。

参见https://developer.apple.com/news/index.php?id=9162013a

编辑:是的,如果你有armv7和armv7s,你仍然可以在iPhone 5s上运行,但是在32位模式下。我建议现在提交armv7 / armv7s,下个月加入arm64。


2013年11月1日更新:

根据2013-10-22版64-bit Transition Guide for Cocoa Touch,您现在可以使用Xcode 5.0.1生成包含64位和32位体系结构的二进制文件,并在较旧的iOS版本上运行。

  • 您需要使用Xcode 5.0.1
  • 64位版本只能在运行iOS 7.0.3 +
  • 的64位设备上运行
  • 32位版本只能在运行iOS 5.1.1 +
  • 的设备上运行
  • 运行iOS 7.0.0-7.0.2的64位设备将使用32位切片

答案 1 :(得分:13)

您必须使用iOS 7.0作为部署目标来构建arm64。 如果你想支持iOS 6.1,你最多必须坚持使用armv7s。由于arm64处理器可以在32位模式下运行,因此这应该不是问题。

答案 2 :(得分:6)

好的,我通过将“搜索路径”中的“始终搜索用户路径”更改为“否”来解决问题,一切正常。我将参数设置为“是”,程序仍然正常。我不知道为什么会这样。

当我更改具有程序的文件夹位置时,会发生此问题。

答案 3 :(得分:5)

当我添加BOOL变量时,我遇到了这个问题。 #import UIKit / UIKit.h 也显示为错误。以下是您需要从默认项目进行的更改的屏幕截图。

在: enter image description here 后: enter image description here

答案 4 :(得分:2)

您应该在构建设置中将启用模块(C和目标c)设置为NO:  Apple LLVM 5.0 - language - Modules

Answer from official forum

enter image description here

答案 5 :(得分:0)

通过更改创建项目的位置解决了这个问题,在创建项目时,我保存在桌面上,当我创建存储库时,它显示了这个问题。

我希望这个答案有助于某人。

答案 6 :(得分:0)

我有几乎相同的错误堆栈。两个例外情况或多或少相同。和用户tjv一样,我在#import上也有错误。我没有与arm64相关的链接器错误。缺失的arm64可能是症状的关键区别。

我的问题是我在

中的项目文件中设置了几个预编译器宏
  

Apple LLVM 5.1 - 预处理

部分。而不是设置MACRONAME=1我键入了MACRONAME= 1 你可能已经猜到了。额外的空间使所有的差异。