Jun's blog

仕事や趣味について綴ります

iOSアプリ開発におけるTravis CIの設定

iOSアプリ開発で初めてTravis CIを使うことになったので設定を備忘としてメモしておく。

設定

.gitディレクトリと同階層に.travis.ymlを以下の内容で作成した。 この設定により、ビルドとテストを行い、結果がSlackのチャネルに通知される。

language: objective-c
osx_image: xcode7.2

before_install:
- gem install xcpretty
- gem install cocoapods -v '0.39.0'
- pod install

script:
- xcodebuild -workspace ワークスペース名 -scheme スキーム名 -configuration コンフィギュレーション名 -destination
  'platform=iOS Simulator,name=iPhone 6s,OS=9.2' test | xcpretty

notifications:
  email: false
  slack:
    secure: slackのクレデンシャルをtravis encryptコマンドで暗号化したもの

設定の説明

  • 実際の開発言語はSwiftだけどlanguage: objective-cでOK。
  • xcodebuildを実行すると大量にログが出て、Travis CIのログ上限4MB制限を超えて途中でコンパイルが強制終了されてしまうため、xcprettyを入れてログを整形、量を少なくしてログ制限に引っかからないようにしている。
  • cocoapodsでライブラリ管理をしているのでbefore_install:pod installを実行している
  • notification:ではデフォルトのメール通知をOFFにして、代わりにslackの特定チャネルに通知するようにしている。
  • slack: secure:部分の記述は、travis encrypt "<account>:<token>" --add notifications.slackを実行することで自動で追加される。

xcodebuildを使用している理由

  • Travisはデフォルトでビルドツールとしてxctoolを使うが、こちらにもあるように Xcodeのバージョンアップで機能しなくなる等、問題が多いことからxcodebuildを使った方が良いと社内でもアドバイス頂いたため。