2016-11-22 81 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

相關問題