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上构建时没有问题。当我使用模拟器时只有问题。我试图从构建设置更改体系结构,错误文本更改为i386,但问题相同。Xcode 8.1体系结构x86_64的未定义符号错误
我使用那个sdk; TZBeacon
sdk有问题吗?你能帮我解决这个问题吗?
答
如果框架的体系结构是为设备构建的,通常会在模拟器中出现该错误。您需要使用为模拟器构建的框架版本,以便在模拟器上运行它。这是框架供应商应该提供的。
如果他们没有提供,那么在构建到设备而不是模拟器时只考虑包含该框架。还有另一个SO的答案在这里指向你在正确的方向:How to only include a framework when building for device, not iOS Simulator?
答
你的图书馆不支持模拟器。运行此命令行看到,它支持的架构:
lipo -info libTZBeaconSDK.a
结果是:架构FAT文件:libTZBeaconSDK.a是:ARMv7的arm64
所以,你必须在一个测试设备,不在模拟器!
'libTZBeaconSDK.a'可能不是模拟器“兼容”(不适用于),请检查文档。 – Larme