The following build commands failed: CompileStoryboard ProjectName/Base.lproj/LaunchScreen.storyboard

TravisCIでXcodeのプロジェクトをビルドしようとした時に発生したエラー。

まさかのStoryBoardコンパイル失敗。笑

結論、TravisCIのXcodeServer環境と手元の環境に差があるのが原因のようだったので、osx_imageを指定することでエラー回避。

language: objective-c
osx_image: xcode7.2
script: make test

TravisCIのXcode環境は地獄だぜ・・ きっとXcodeServerの対応が大変なんだろうなぁと妄想しています。

余談

私はTravisCI上でxcodebuildの出力をxcprettyを利用して整形するようにしているのですが、出力だけをパイプで渡すとxcodebuildがエラーを吐いてもCIがpassしてしまいます。

↓こんな感じ

** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

The command "make test" exited with 0.

Done. Your build exited with 0.

この場合は下記のようにPIPESTATUSを引き継いで出力してあげると正しく動作してくれます。

test:
    xcodebuild -project ProjectName.xcodeproj  |  xcpretty -c && exit $${PIPESTATUS[0]} # Makefileの中なので$が2重