はじめに
表題のエラー対処に時間がかかってしまったので記事に残します。
本題
発生したエラー
Bitriseでビルドを実行すると"Xcode Test for iOS"ステップで以下のエラーが発生。
ファイルが見つからない。
error: missing module map file: '/Users/vagrant/git/Pods/Target Support Files/FirebaseCore/FirebaseCore.modulemap (in target 'FirebaseCore' from project 'Pods') error: missing module map file: '/Users/vagrant/git/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging.modulemap (in target 'FirebaseMessaging' from project 'Pods') exit: 65
キャッシュの影響もあるかと思い、"Bitrise.io Cache:Pull"ステップを一旦削除して再度ビルドし直すと今度は以下のエラーが発生。
/Users/vagrant/git/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h:19:9: 'GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h' file not found #import "GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit: 65
今度は別のファイルが見つからない・・・。
対応方法
以下の手順で原因を調査し、対処法を検討する。
Xcode上でテストが通るか確認。ここで問題が発生したらBitrise起因のエラーではない。
↓
BitriseCLIを使ってローカルでワークフローを実行。ビルドが通る場合、ローカル環境とBitrise上の環境が異なっているためにエラーとなっている可能性が高い。例えば、Stacks&Machinesで設定した環境がローカル環境と違ったり、Bitriseが対応していないツールのバージョンを使っている、そもそも.gitignoreファイルにビルドに必要なファイルが含まれているなど。
エラーの原因
対応方法の手順を実施したところ、ローカルでビルドが通り、BitriseCLIでもビルドが通った。.gitignoreファイルを確認したところ、エラーログに記載されていたファイルが含まれていた・・・。(なんで.gitignoreしているの・・・。)
おわりに
表題のエラーは様々な要因によって発生するようで、原因の特定に時間がかかってしまいました。関連記事を参考欄に記載したので、本記事の内容で解決できない場合はそちらを参考にしてもらえればと思います。
参考
- https://support.bitrise.io/hc/en-us/articles/4406609742353-Xcode-Unit-Test-fails-without-any-error-with-exit-code-65
- https://discuss.bitrise.io/t/xcode-exit-code-65-exit-code-66-raw-xcodebuild-output-log/813
- https://discuss.bitrise.io/t/macos-build-fails-with-exit-status-65/16515
- https://discuss.bitrise.io/t/how-to-debug-your-build-locally-it-works-on-my-mac-pc-but-not-on-bitrise-io/392
- https://hetarelog.blogspot.com/2018/01/fastlaneexit-status-65.html