Unity Cloud BuildでUnityのビルドやバイナリ配布を自動化しよう

お金を払ってProライセンスを使っている人に朗報です。Unityがベータ版として提供する Unity - Cloud Build を使えば、いわゆる継続的インテグレーション(CI)が簡単に行えます。

弊社では「レポジトリの特定のブランチを監視させ、変更があったらiOS版とAndroid版をビルドして配布」という用途のために使用してします。

そうです、TestFlightのような配布機能まで備えており大変便利です。ProユーザーはJenkinsやTestFlightを個別にセットアップする必要がなくなります。

下準備

iOS用ビルドやAndroid用ビルドをするためにはいくつか下準備が必要となります。

identifierの用意

Bundle ID的なものを用意しておく必要があります。iOS Developer CenterでApp IDを作ったりしてiOS向け、Android向けの設定を終えます。あとで必要になるのでビルド用のProvisioning等を用意しておきましょう。つまるところ、手元でビルドするのに必要な準備と大差はないと思います。

手作業による変更が要らない状態に

Xcodeプロジェクトの書き出し後に手作業による設定変更をしている人もいるかもしれませんが、Cloud Buildではそのようなことはできません。プロジェクトの書き出しからビルドまでを完全に自動で通す必要があります。

そこで前回のエントリーUnityでのXcode設定をUnityEditorのスクリプトだけで自動化する につながります。Xcode のプロジェクトを変更する必要がある人はこちらを参考に色々頑張ってみましょう。

Cloud Buildでプロジェクトの設定

Unity - Cloud Build ←まずここからProライセンスを支払っているアカウントでログインし、上部ナビゲーションバーからAdd Newを選択します。

するとこのような画面になるので、監視したいリポジトリのURLを入力しましょう。弊社ではbitbucketを利用しているのでgit@bitbucket:account/repository.gitのようになりました。

次にSSHキーを設定します。この画面で詳しく案内してくれるので特に問題はないでしょう。

どのブランチを監視するのかを決めます。ここで指定したブランチにあるコードを使ってビルドしてくれるようになります。

これまでに設定した内容の確認と、ビルドするプラットフォームを選びます。iOSAndroidを有効にし、必要であればAuto-buildにもチェックしておきましょう。Auto-buildが有効になっていると、ブランチに対する変更を検知して自動的にビルド→配布を行ってくれます。

最後にAndroidiOSの設定を行います。

予め用意しておいたBundle IDやProvisioning Profile、p12などを入力、アップロードします。

長かったですね。これで自動ビルドのための準備ができました。

次のステップに進むと最初のビルドがスタートします。ビルド完了後は配布URL付きのメールが来ます。

運用例

弊社ではCloud Buildが監視するためだけのブランチを作成しており、区切りのいいタイミングでメインブランチからプルリクエストを作成してビルド用ブランチを更新するようにしています。BitbucketのWebインターフェースでプルリクエストを作ってマージするだけで自動的に実行可能なバイナリを作ってくれるわけです。

もっというとこのプルリクエスト作成→マージの部分はChatOpsな感じで動くようにしています。細かい話は後日書くかもしれませんが、予め登録しておいた命令をbot hogehogeのような感じでSlackに投稿すると、あとはBotが勝手にマージしてくれるようにしています。

「そろそろメンバー全員に見せておくか」と思ったらSlackにちょっと書くだけで配布まで完了できるわけです。革命的ですね。