xcode 10.1体系结构arm64的未定义符号

时间:2018-12-20 03:12:37

标签: xcode arm64

我已经走了这么多SO线程并遇到类似问题,但是似乎没有一个可以解决我的错误。

在我们的项目中,我们有多个“目标”。只有一个目标(有史以来第一个创建的目标)正在正确归档。当我尝试存档其他目标时,我们会遇到此错误

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_DynamicEventData", referenced from:
      objc-class-ref in DataManager.o
      objc-class-ref in DataReader.o
  "_OBJC_CLASS_$_DynamicDataService", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_DynamicDataConfig", referenced from:
      objc-class-ref in DataManager.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我确实将工作目标Build Setting与其他目标进行了比较,但它们都是相等的。我检查了头文件,它们存在于我们的项目目录中。我尝试将头文件的路径手动添加到Header Search Paths,但是相同的结果仍然会出现错误。

有什么主意吗?我真的需要解决此问题才能导出ipa文件。

谢谢!

3 个答案:

答案 0 :(得分:0)

我手动扫描工作目标与缺陷目标的 Build Phases> Link Binary With Libraries 。我发现一个仅被添加到工作目标中的框架/库,所述框架不是由pod管理的,这可以解释为什么另一个目标没有该框架。我认为它是在项目中手动添加的。

我将上述框架添加到所有目标中,现在我可以在没有上述错误的情况下进行构建了。

谢谢!

答案 1 :(得分:0)

我遇到了同样的问题,发现的解决方案是如此简单(人....)。 在项目中搜索错误中提到的类。 转到“文件检查器”,然后简单地检查“目标成员身份”中其余目标的V。 而已!我花了两个小时(浪费时间)才找到答案。 希望我的解决方案可以为有类似问题的任何人节省时间。

答案 2 :(得分:0)

忘记复杂的答案,因为您更改了XCODE内部结构,这些答案可能会影响其他已开发的应用程序。

根据我的经验,发生这种情况是因为您更新了复制项目的版本,这是最简单的方法。

当在“ BUILD SETTINGS”选项卡中将“启用模块(C和Objetive -C)”参数设置为YES时,问题就解决了。

我还建议比较项目之间的BUILD SETTINGS参数(虽然很多,但是比重建项目要快。。。我不明白为什么Apple使它变得如此复杂)。 BUILD SETTINGS parameters comparation