TravisCIでiOSアプリのテストするのにハマったところ
しばらくiOSのCI環境がローカルのJenkinsだけで、メンテめんどいわPCのリソース食うわログ共有めんどいわでずっとクラウドに移行したかったんですが、ようやくTravisCIでうまくいったのでハマりどころをメモしておきます。
最終形
とりあえず2014年12月15日現在動いてる.travis.ymlはこちらです。
1
2
3
4
5
6
7
8
# .travis.yml
language: objective-c
xcode_workspace: xxxx.xcworkspace # xxx.xcodeprojな人はxcode_projectを使ってください
xcode_sdk: iphonesimulator
xcode_scheme: Development # 自作スキーム。適宜変更してください
notifications:
slack: xxxxxxxxxxxxxxxxx
ハマりどころその1: Timed out waiting 120 seconds for simulator to boot
ちょっと前に本家のドキュメント見ながらやって挫折したんですが、とりあえずぐぐって出てきたのがこの辺。
上の方はRakefileでごりごりがんばる感じなんですが、どちらも最終的に叩くのはxcodebuildコマンドです。テスト流すのに必要最低限のRakefileだけ書いてローカルで叩いてみると・・・
っていうエラーが出てきました。そういえば最近ローカルのJenkinsもずっと失敗しっぱなしやし(だからTravis化に踏み切ったんですが)まあ環境の問題かなーと思って、.travis.ymlをこんな感じで書きました。
1
2
3
4
5
6
7
8
# .travis.yml
language: objective-c
install:
- bundle install --path=vendor/bundle --binstubs=vendor/bin
- bundle exec pod install
script:
- bundle exec rake test
これをpushしたら、なんとTravisでもおんなじエラーが出てしまいました。
ここでこのエラーをだいぶぐぐってStack Overflowの英語とにらめっこしたりしてたんですが、結局Rakefileは一旦諦めて、やっぱり本家の通りやってみようということでこうなりました。
1
2
3
4
5
# .travis.yml
language: objective-c
xcode_workspace: Best10.xcworkspace
xcode_scheme: Development
ログをよくよく見ると、Xcode 6ではxcodebuildではなくxctoolというコマンドを使う必要があるようです。ローカルJenkinsで失敗してたのもこのせいっぽいです。
すると先ほどのエラーとは別のエラーが出てました。
ハマりどころその2: CodeSign error
これは実は見たことあったんですが、Xcodeでコマンド+Uでテスト流す時にターゲットが実機やと出ます。ちゃんと設定すればいいのかもしれませんが、とりあえずシミュレーターにしたら成功するので放置してたやつです。こんな感じ
まあクラウドやとProvisioning Profileとかよりめんどそうな気しかしなかったので、今回もシミュレータに設定しました。
1
2
3
4
5
6
# .travis.yml
language: objective-c
xcode_workspace: Best10.xcworkspace
xcode_sdk: iphonesimulator # ←これ
xcode_scheme: Development
なんのことはない、本家のドキュメントをちゃんと読めば素直にいけたっていう話ですが、適当に読み飛ばして遠回りしたのでブログに残しておきました。
どうせならTestflightに配るところまでやりたいけどまた気が向いた時に。といいつつ今回調べながらもっと安そうなサービスも見つけちゃったのでそっち先試すかも。こっちの方がいいよーみたいなのがあれば教えてください。
Railsアプリもあって既にcircleciにお金払ってるからそこがiOS対応してくれたら一番嬉しい・・・
と思ってたらこの記事の二日後にcircleciがiOS対応しました。
https://circleci.com/docs/ios
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。