5

我最近升级到 Xcode 4.4 并一直使用它来提交一些 Mac App Store。两个工作正常,但第三个给出了这个错误:

Undefined symbols for architecture x86_64:
  "_objc_retain", referenced from:
      ___ARCLite__load in libarclite_macosx.a(arclite.o)
     (maybe you meant: _objc_retainedObject)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

ARC 已关闭,所以我不知道这个引用来自哪里,或者如何摆脱它。我尝试了通常的清理/构建周期,但无济于事。

有什么想法吗?

4

3 回答 3

16

我认为您应该在 Xcode 4.4 上使用 SDK 10.6,对吗?如果是这样,请将“隐式链接 Objective-C 运行时支持”更改为“否”。

于 2012-09-23T01:50:28.753 回答
2

你的基础sdk低于5.0吗?我使用的是 Xcode4.5,在使用 iOS 4.2 构建时遇到了同样的错误。将其更改为 iOS5.0(或更高版本)后,错误消失了。

对不起,你谈到了 Mac 应用程序。但我认为原因可能是一样的。好的,我找到了答案:将“隐式链接 Objective-C 运行时支持”更改为 NO 可能有效。

于 2012-09-21T03:20:52.397 回答
1

我在 Xcode 7.0.1 和 iOS 7.0 中遇到了同样的问题。解决方案是将部署目标从 7.0 更改为 7.1。

于 2015-10-13T06:43:23.957 回答