アプリのUItestsを実行しようとしていますが、ロードするとすぐにクラッシュします。これがエラーです。
2018-09-29 16:19:49.577151+1000 xxxUITests-Runner[6007:69633] (dlopen_preflight(/Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/xxxUITests): Library not loaded: @rpath/libswiftContacts.dylib
Referenced from: /Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/Frameworks/MapboxGeocoder.framework/MapboxGeocoder
Reason: image not found)
CocoaPods(1.6.0.beta.1)を使用してフレームワークをインストールしています。 Xcode10をSwift 4.2およびIOS 12.で実行している.
私のターゲットアプリは、シミュレーターと実際の携帯電話の両方で完全に機能し、ユニットテストも同様に機能します。しかし、私のUITestターゲットは起動するとすぐに失敗します。この問題は、シミュレータと実際のマシンの両方で発生します。
これまでにこの問題に関する多くの投稿がありましたが、今のところ私を助けてくれた人はいません。 UITestユニットのポッドファイルに依存関係を追加することで初めて解決し、ターゲットを削除して新しいターゲットにクラスをコピーアンドペーストすることで2回目の解決を行いました(非構造的) 、しかし最後の手段)。今回も同じことをすることができますが、それは少し時間の無駄であり、これが将来再び現れることを恐れています。
これは私がこれまでにやったことです:
Xcodeビルドフォルダを削除し、派生データ、IOS=デバイスログ、およびユーザーデータフォルダを削除します。
Xcode、Mac、およびデバイスとシミュレーターの再起動、リポジトリの再クローン、ポッドの更新とポッドのインストール
「常にSwift標準ライブラリ」をyesとして埋め込む)
ターゲットアプリケーションが正しいことを確認しました
問題のあるフレームワーク(MapboxGeocoder.framework)がEmbed Pod Frameworksに含まれていることを確認しました
だから5日後、私は自分の問題を解決することができました。
UITestsターゲットをPodfileのメインアプリのスコープ外に移動することで解決しました。
から:
target 'App' do
use_frameworks!
pods 'Firebase'
target 'AppUITests' do
pods 'Testingpod'
end
end
に:
target 'App' do
use_frameworks!
pods 'Firebase'
end
target 'AppUITests' do
pods 'Testingpod'
end
Cocoapodsの問題で提案されている別のソリューションが見つかりました。
私のプロジェクトはフレームワークなので、テストにはホストアプリケーションがありません。
変更されたPodfile
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests' do
inherit! :search_paths
end
end
に
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests'
end