Bitrise 導入とビルド連携までしてみた(あと注意点)

ウィ、しょーです。

今更ですが、CI,Bitrise勉強中です。
個人開発でも今まで導入したことなかったし、業務でもできる人がタスクを持っていってくれたり、自分のタスクが終わらないまま未経験のCI整備に手を出すのが怖くて逃げ腰でした、、、

しかし、私は立ち上がったのである。

職場の人にも「勉強しておきます!」なんて言っちゃったもんだから引くに引けません。
とりあえず導入くらいはやってみようと重い腰を上げたのである。

変に詰まってしまったので備忘録残したかった。

今回の目標

  • Bitriseに登録する
  • プロジェクトと紐付ける
  • ビルドを成功させる

Bitriseに登録しよう

普通に登録しましょう。
特に説明不要なところは省いていきます。
主にビルド成功までの過程でハマったところメインになります。

登録は公式サイトから行ってください。
https://www.bitrise.io/

プロジェクトと紐付けよう

そしてプロジェクトとBitriseの紐付け手順も公式が一番正しいです、当たり前ですが。
Qiitaなど様々な先人が同様のフローを残していたりもしますが、うっかり情報不足だったりすると後々ハマってしまいます。(私です)

手順は以下の通り行ってください↓
https://devcenter.bitrise.io/jp/getting-started/index/

進めていくとわかりますが、Apple DeveloperアカウントをBitriseと連携させるという項目があります。

BitriseでApple Developer Accountを認証し、Apple Developer PortalとBitriseのプロジェクトを統合することができます。 これにより、iOSアプリのProvisioning Profilesの管理がとても簡単になる、 iOS Auto Provisioning を利用することができます!

とあるように、Bitriseを使うメリットの一つである証明書の自動プロビジョニングで必要になります。
この登録をやらずとも先に進めますが、ビルドの工程でコケます!
私はここでハチャメチャにハマりましたよ、、

大まかには、

  • アプリの追加(ワークフロー等)
  • Githubとの紐付け
  • Apple Developer Accountとの紐付け

などを行い、webhookのところまで到達します。

ようやくビルドだ!

証明書をアップロードしよう

しかしエラーが出ます。証明書がアップロードされてないぜと怒られます。
こちらもビルドする上で必要になりますのでアップロードしましょう。

アプリページ → workflow → code signing

まで行くと証明書のアップロード画面があります。
こちらに provisioning profilep12ファイル をアップロードします。

公式の手順はこちら↓
https://devcenter.bitrise.io/jp/code-signing/ios-code-signing/code-signing-index/

アップロードの注意点

個人開発をされている方はCertificateprofile等をApple Developerに登録していると思います。
expiredになっていたり、有効のものが複数存在している場合、

  • Certificate
  • Profile
  • アプリに設定してるもの

が全て同様の物が使用されているようにしてください。
もし一つでも異なるものが紐づけられていると、画像の緑丸でOKサインの部分がエラーで赤丸になります。

ちなみに私は証明書整理も一緒に行ったら、期待通りハチャメチャにハマりました。辛かった。

p12 ファイルのアップロード

正直証明書まわりってそこまで理解していない。。アプリをアップロードする時くらいしか触らないしね。
とりあえず取得してアップロードするとこまでやってみよう。
ってことで、マタハマッタ、、、

とりあえず、アップロードするためにキーチェーンアクセスでp12ファイルを書き出すところまできたんですが、
p12の選択がグレーアウトしてる、、、

また何かミスったかと思ったんですが、これを書き出すときは左下のCategoryからMy Certificatesを選択します。

ありましたね!よかった!

ios-auto-provisionを設定しよう

自動プロビジョンの設定をします。ここまできたらもう少しです。

公式フローはこちら↓
https://devcenter.bitrise.io/jp/code-signing/ios-code-signing/ios-auto-provisioning/

導入するにはいろいろ設定があります。
説明通りですが、注意する点としては

Certificate and profile installerステップがワークフローの中に含まれていないか確認してください。もしiOS Auto ProvisionとCertificate and profile installerのステップの両方がワークフローの中に含まれていた場合はビルドは失敗します。

iOS Auto Provisionはワークフローの中で依存関係を解消するインストールのステップの後に設置するようにして下さい。例えばRun CocoaPods installやCarthageのようなものです。 iOS Auto ProvisionとXcode Archive & Export for iOSのステップの間にXcode projectの設定の変更をしないようにして下さい。

とあるように、Certificate and profile installerが入っていないこと、ios-auto-provisionとiOS Auto ProvisionとXcode Archive & Export for iOSの間に設定変更のフローがないことに注意しなければいけません。

Certificate and profile installerに関しては、確かBitrise導入直後だとデフォルトで組み込まれているので、自動プロビジョンを行う際は手動で取り除きましょう。
プレーンな感じだと以下のようになるかと思います。

ios-auto-provisionの注意点

Apple Developerアカウントを連携させるの部分でも少し話しましたが、連携されていないことビルドしても
エラーになります。

なのでしっかり最初に登録しておきましょうね。
ワイは初期設定でなんぼハマってるんやって感じでしたよ、、

さぁビルドだ!

再度ビルドしてみよう!
手順通り行って、上記で上げた注意点も問題なければ念願のSuccess画面が現れます!

やったね!

まとめ

Bitriseのアプリ導入からビルドまでの流れを、ハマったところメモしながら少し書いてみました。
いやいや、CIは全く触ってこなかったし、業務でも怖くて触ってなかったからなんとなく触れてよかった。

ちなみに無料アカウントだとビルド制限があります。

200ビルド/月なので、リポジトリへのプッシュがビルドトリガーになっていれば足りるかなぁ。
個人開発をゴリゴリやってる人は足りないかもね。

まだ導入までの話なので、workflowの勉強もしつつまたそのうちメモしようと思います。

お疲れっした!