iosのテストをswiftで実装しようと思ったら以下のようなエラーがでて実行できなくなった。
Test session exited(82) without checking in. Executable cannot be loaded for some other reason, such as a problem with a library it depends on or a code signature/entitlements mismatch.
KIFを使ったテストでこのエラーがでたが、他のテストライブラリでも同様の問題が発生しているらしい。
~/Library/Developer/Xcode/DerivedData を削除すればよいとか、UIKitをインポートすればよいとか、cleanしてビルドすればよいとか色々な説があったが、自分の環境ではビルドターゲットを作り直したらうまくいった。
具体的には以下の手順
- プロジェクトのTARGETSにあるテストのターゲット(xcodeが自動で生成したのであれば、
{ProjectName}Tests)を削除 -
Manage Schemes...からこのターゲットのスキームを削除 - ソースツリーから
{ProjectName}Testsのディレクトリを削除 - ターゲットの追加から
Cocoa Touch Testing Bundleを追加。このときswiftを選ぶ -
New Scheme...から新しくつくったターゲットのスキームをつくる - Bridging-Headerを設定
- CocoaPodsをつかってるならupdate
- 普通にswiftでテストをかく