2016-07-07 8 views
0

これを解決するのに時間がかかったので、誰かがそれを探しても解決策を見出せると思った。iOSシミュレータがクラッシュして、デバイスが見つからない(dyld:Symbol not found)

問題はCoreUIというフレームワークがあるときに発生しました。これは私のiPhoneやiPad上でうまく働いたが、それはすべてのビルド設定を見て、私はCoreUIと呼ばれるフレームワークを使用して空のプロジェクトを作ってみました何も見つけなかった後、端末

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は、Appleが使用するフレームワーク名でもあるようです。それは迅速な唯一のフレームワークであったにもかかわらず、これは依然として衝突を引き起こす。

答えて

1

解決策は、Appleが使用する(アプリケーションやフレームワークの)モジュール名を使用しないことです。私はここにフレームワークのリストを見つけました(https://github.com/jonathanpenn/ui-auto-monkey/issues/8)。私はそれが完全であるかどうかは分かりませんが、それは良いスタートです。

1

これはDYLD_FRAMEWORK_PATHの動作方法です。 DYLD_FRAMEWORK_PATHに独自のCoreUI.frameworkがあるため、UIKit.frameworkからのリンケージを満たすために、システム1の代わりにそのCoreUI.frameworkが使用されます。

はすなわち、システムフレームワークによって使用されているフレームワーク名を選んではいけない:

のls $(xcrun --sdk iphonesimulator --show-SDK-パス)/システム/ライブラリ/ *は

をフレームワーク
関連する問題