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でテストをかく