スマホアプリ特化のCIツール ship.ioを試してみた for iOS

shipio

公開日: 

この記事の人が目でお前iOS書けよという目でこちらを見ていたので書きます。

スマホアプリ特化のCIツール ship.ioを試してみた for Android

androidの方は上見てね。

 

ちなみに、自分の記事でもgitlabのプライベートリポジトリからのCIを試してます。

 

sponcer link

 

ship.ioとは

3行で表すと、

 

スマホアプリ用に特化した

ビルドテストデプロイが出来る

CIツール!!!!

 

jenkinsおじさんの代替候補のひとつということですね。

 

手順

何はともかくTopページの右上からsign up!

メアドとパスワードをいれると即効でもう登録されてdashboardに。

shipio-dashboard

はやいw

左上の+ボタンから早速追加してみる。

 

iosはworkspaceで作ってねと。Nextぽち。

shipio-tutorial-ios

 

androidはgradlewつかったbuild.gradeからgradleのタスクをさがしてくれるそうな。よくわかってないけどGot it Thanks!!

shipio-tutorial-android

 

 

今回、gitalbのprivateリポジトリで試してみたかったのと、よへい曰く、httpsではできないらしいのでおとなしくsshでやってみる。

とりあえず+ボタンから鍵を登録してみる

shipio-ssh

 

 

今回は「Generate Key Pair」でship.io用に鍵を生成する。

名前は適当にship.ioとかつけて、Saveするとこんなかんじで鍵が作られるのでPublic Keyをgitlabに登録しておく。

shipio-generate-key

 

 

ここで大変なことに気づく。

さっきのSSHの設定に戻るリンクねーじゃんwwwww

しょうがないので戻るボタンで戻る。

が、さきほど登録した鍵がないのでF5で更新(イケテナイ)すると、さきほど登録した鍵が出るようになった。

URL、ブランチ、先ほど設定した鍵とかを設定してScan!!

解析が始まる

shipio-scanning

 

 

ちなみにiosはworkspaceで作ってないとねーじゃん!って怒られるが、大体のプロジェクトはcocoapodsを使ってworkspaceを作っていると思う。

pod installしたらworkspaceつくられるけど、普通これプロジェクトにコミットしないしなぁ。。。(だよね?

と思いつつできないものはしょうがないのでとりあえずxcworkspaceをコミットしておいてからAnalyzeをかけた。

 

解析が終わるとジョブの設定になる。

shipio-create-a-job

 

xcodeのバージョン選んだり、hookの設定できたりとわりかしなんかよさげ!

 

ユニットテストの設定

「Add build step」から「Add Unit Tests」を追加する

 

Project Configurationではスキーマとか変えたければ適当に変更して下さい。

shipio-project-configuration

 

Simulatorではios7.1のiPhone4Sでテストをしてみることに。

shipio-simulator

 

ちなみにDevicesにはもっとたくさんの実機でテスト出来そうな雰囲気は醸しだされていた。

shipio-devices

 

cocoapods使いたいので、Build OptionsでPodfileにはチェックを入れておく

shipio-buildoptions2

 

 

それでOKを押下。

 

ビルド設定

次にビルド設定するために、「Add build step」より、「Build An iOS Application」を追加する。

 

Archive Buildにチェック。

Adhoc用とかの設定にしたかったらそれ用に別途スキーマを作って、スキーマを選択しておけばいいと思う。

shipio-archive-build

 

Code Signingのタブでは、証明書とかプロビジョニングプロファイルを登録しろと言われるので、「account(https://app.ship.io/code_signing)」リンクを押下すると、、、

shipio-code-sign

 

 

こんなページに飛ばされるので「Add Certificate」ボタンから証明書をうpしてあげる

shipio-certificates

ちなみに証明書については、お持ちのMacにて、キーチェーンアクセスを開いて、自分のDeveloperとかの証明書を「パスワード無し」で書きだしたのをアップしてあげて下さい。

同じ感じにProvisioning Profilesタブでプロビジョニングプロファイルもアップしておく。

今回はテストなので開発用の証明書と、「iOSTeam Provisioning Profile: *」のワイルドカードのプロビジョニングプロファイルをうpしておいたが、本番用のを登録しておけばそのままappstoreに提出できるIPAが作れるようになります。

 

 

証明書などの設定されてるとこんなかんじでcode signの設定もできるようになります。(ださいけどない場合はF5で再読み込みしてね)

shipio-codesign2

 

 

Cocoapodsを使いたいのでBuild Optionsにて、Podfileにチェックをいれる。

プライベートリポジトリにあるcocoapodsライブラリも利用できそう。

shipio-build-options

 

ひと通り設定したらOKを押下してジョブ設定に戻る。

 

 

最後にCreate Job!!でジョブを作成する。

 

 

ダッシュボードに戻り、さっそくQueueに入っていたが、しばらくするとすぐにStatusがstartedになっていた。

shipio-started

 

 

しかし早速失敗w

失敗したジョブを押下して詳細を見ると、失敗したところとかはわりかしわかりやすく出る

shipio-build-failed

 

 

show ouputとか押下すると細かいログとかを見れる。

こけた原因を直した後に、再びジョブを走らせたらちゃんと成功しました。(この時はcode sign設定してなかったのでこけた)

 

ジョブが成功するとダッシュボードではこんなかんじになります。

shipio-success

 

ジョブ結果をみると、IPAとかもダウンロードできます。

shipio-success-detail

 

 

 

※説明ではユニットテストからのビルドの順番で説明してますが、うっかりさんな自分はビルドから設定してしまったので上記のSSになっています。

※順番は気軽に後から変えられないのがちょっと残念。

 

 

まとめ

こんなかんじでGUIで説明書読まなくても直感的に設定できるので結構楽ちんにスマフォ用CIが組めるのでいいなと思いました。

シェルスクリプトも実行できるのでbetaにアップロードも簡単にできるかと。

 

これ使うの結構アリアリなんじゃね・・・?

Jenkinsおじさんもう引退でいいんじゃね・・・・・・・・?

  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑