2016-07-07 153 views
0

我花了一些時間來解決這個問題,所以我想如果有人曾經搜索過它,他們也可能會在這裏找到解決方案。iOS模擬器崩潰,設備沒有(dyld:找不到符號)

當我有一個名爲CoreUI的框架時發生了問題。這種精細的工作在我的iPhone和iPad,但它崩潰與以下錯誤模擬器終端

dyld: Symbol not found: _OBJC_CLASS_$_CUICatalog 
Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/UIKit.framework/UIKit 
Expected in: /Users/sareninden/Library/Developer/Xcode/DerivedData/Treinplanner-bcfwuvntuwetsmavibxtvaiczpfg/Build/Products/Debug-iphonesimulator/CoreUI.framework/CoreUI 
in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/UIKit.framework/UIKit 

翻翻所有的構建設置和什麼也沒找到我試着做了一個名爲CoreUI框架空的項目後。如果沒有添加任何邏輯,它會以相同的錯誤崩潰。

似乎在模擬器中CoreUI也是Apple使用的框架名稱。儘管這是一個快速的框架,但這仍然會導致衝突。

回答

1

這就是DYLD_FRAMEWORK_PATH的工作原理。因爲在DYLD_FRAMEWORK_PATH中有自己的CoreUI.framework,所以使用該代替系統來滿足UIKit.framework的鏈接。

不要選用由系統框架中使用框架的名稱,即:

LS $(xcrun --sdk iphonesimulator --show-SDK-路徑)/系統/庫/ *框架

相關問題