在我现有的项目中添加了一个库,它在模拟器上成功构建,但在真实设备上失败,我无法在设备上运行它

时间:2019-03-31 15:22:16

标签: objective-c xcode

我在现有的Xcode项目中添加了一个库,之后该库仅在模拟器上构建而无法在iPhone上构建,从而给我错误“体系结构arm64的未定义符号:”

有人帮我吗?

我尝试了几种方法来摆脱这种情况,但不幸的是没有任何效果。我清除派生数据退出Xcode,重新启动笔记本电脑。

我在添加库的同时做一件事,实际上库是旧的并且不支持弧启用,但是我的项目ARC已启用,因此我为Target中的每个库文件(例如“ -fno-objc-arc”)设置了一个标志值- ->构建阶段->编译使该特定文件的arc enable为false的源代码。可能是由于该问题,但我无法修复它。

ld: warning: directory not found for option '-L/Users/shashigupta/Git Projects/ClinMd/Common/PNFModule'
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_EASession", referenced from:
      objc-class-ref in libPNFPenLib.a(PenController.o)
  "_OBJC_CLASS_$_EAAccessoryManager", referenced from:
      objc-class-ref in libPNFPenLib.a(PenController.o)
  "_EAAccessoryDidConnectNotification", referenced from:
      -[_PenController initWithCoder:] in libPNFPenLib.a(PenController.o)
      -[_PenController init] in libPNFPenLib.a(PenController.o)
      -[_PenController dealloc] in libPNFPenLib.a(PenController.o)
  "_EAAccessoryDidDisconnectNotification", referenced from:
      -[_PenController initWithCoder:] in libPNFPenLib.a(PenController.o)
      -[_PenController init] in libPNFPenLib.a(PenController.o)
      -[_PenController dealloc] in libPNFPenLib.a(PenController.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

它应该在真实设备上成功构建,但只能在模拟器上构建。

1 个答案:

答案 0 :(得分:0)

您需要了解模拟器和真实设备支持不同的架构,并且需要根据运行平台的架构来构建“ PFNModule”。

我建议您阅读本文以了解您所遇到问题的细微差别:http://iosbrain.com/blog/2017/01/07/the-heartbreak-of-the-xcode-undefined-symbols-for-architecture-xxx-linker-message/