Xcode 8.1体系结构x86_64的未定义符号错误

Undefined symbols for architecture x86_64: "_BROADCAST_MODE_IBEACON", referenced from: -[MainViewController tableView:cellForRowAtIndexPath:] in MainViewController.o "_OBJC_CLASS_$_TZBeaconSDK", referenced from: objc-class-ref in MainViewController.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

当我想使用模拟器时,我会出现这个错误。 在iPhone上构build时没有问题。 当我使用模拟器时只有问题。 我试图从生成设置更改体系结构,错误文本更改为i386,但问题是一样的。

我用那个sdk; TZBeacon

sdk有问题吗? 你能帮我解决这个问题吗?

你的库不支持模拟器。 运行这个命令行来查看它支持的体系结构:

 lipo -info libTZBeaconSDK.a 

结果是: 胖文件中的体系结构:libTZBeaconSDK.a是:armv7 arm64

所以,你必须在设备中testing,而不是在模拟器!

通常情况下,如果框架的体系结构是为该设备构build的,则会在模拟器中出现该错误。 您需要使用为模拟器构build的框架版本,以在模拟器上运行它。 这是框架供应商应该提供的。

如果他们没有提供,那么在build立到设备而不是模拟器时只考虑包含该框架。 还有另外一个SO的答案在这里指出你的方向是正确的: 如何在构build设备时只包含框架,而不是iOS模拟器?

简单的技巧在这里: – > 去文件夹/图书馆/开发/ Xcode ”删除派生的数据,然后清理你的项目,然后运行