2016-11-22 84 views
3
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有问题吗?你能帮我解决这个问题吗?

+1

'libTZBeaconSDK.a'可能不是模拟器“兼容”(不适用于),请检查文档。 – Larme

回答

3

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

如果他们没有提供,那么在构建到设备而不是模拟器时只考虑包含该框架。还有另一个SO的答案在这里指向你在正确的方向:How to only include a framework when building for device, not iOS Simulator?

8

你的图书馆不支持模拟器。运行此命令行看到,它支持的架构:

lipo -info libTZBeaconSDK.a 

结果是:架构FAT文件:libTZBeaconSDK.a是:ARMv7的arm64

所以,你必须在一个测试设备,不在模拟器!

-1

简单的技巧在这里:转到 - >转到文件夹/库/开发/ Xcode的” 删除派生数据下一个清理项目,然后运行

+0

没有帮助。 @PrasannaKumar – Alper

+0

没有帮助。 – Inuyasha

相关问题