UnityPro+Github+Jenkins+DeployGateで自動ビルド&配布環境を作る その2

raharu(仮名)(プログラマー)
これがダイバージェンス1%の先の世界か。。。

必要環境

Mac
UnityPro(有料)
github(アカウント作成&SSH認証済み)
Jenkins(無料)
DeployGate(無料)
iOS Developper契約済みアカウント(有料)

となりますUnityProが必要な理由はバッチモードで
メソッドを直接実行できるオプションがProのみ対応しているとのことです。

0からこの環境を整えるのは結構面倒かとおもいますが、
一応必須条件は上記条件になります。

やる事

・Unityでプロジェクトの作成
・Githubで管理を行う
・コマンドラインからビルドする
・Jenkinsの設定に追加
・xcodeプロジェクトからipaファイルを作成
・DeployGateアップロードして配布開始

・Jenkinsの設定に追加

の前に必要なプラグインをインストールします。

Jenkinsの管理からプラグインの管理を選択します。

f:id:raharu0425:20141212102053p:plain

必要なプラグイン

DeployGate Plugin
GIT plugin
GitHub API Plugin
GitHub plugin
Xcode integration

どこまでデフォルトで入ってるのかわすれてしまいましたが、大体このプラグインが必要です。

以下Jenkinsの設定周りです

プロジェクト名を入れます。任意ですが分かりやすい名前をつけます

f:id:raharu0425:20141212111821p:plain

githubのリポジトリURLとアカウントを入力する

f:id:raharu0425:20141212111910p:plain

このコマンドは前回の記事で作成したコマンドでprojectpathを${WORKSPACE}に変更した物です

f:id:raharu0425:20141212112039p:plain

以下xcodeビルド周りの設定になります

f:id:raharu0425:20141212112206p:plain

f:id:raharu0425:20141212112306p:plain

本当はxcodeビルドでipaファイル作成出来るはずなんですけどなぜかUnityプロジェクトは正常にipaファイルが吐き出されない!
どうしたJenkins!!しょうがないのでappからipaファイルを作成するコマンドを自前で用意し、
シェルで追加しておきます。

1
2
3
/usr/bin/xcrun -sdk iphoneos PackageApplication -v 
"${WORKSPACE}/iOSDevice/build/[.appファイルのパス]" -o 
"${WORKSPACE}/iOSDevice/build/[.ipaファイルの保存先のパス]"

f:id:raharu0425:20141212112317p:plain

先ほど吐き出したipaファイルを保存しておく

f:id:raharu0425:20141212112325p:plain

DeployGateのAPIKeyとユーザー名を入力します。
最後にアップロードするipaファイルのパスを入力します。

f:id:raharu0425:20141212112333p:plain

以上で設定は完了です。 正常にビルドが行われると成果物が保存されDeployGateにアップロードされます。

f:id:raharu0425:20141212113450p:plain

f:id:raharu0425:20141212113457p:plain

いくつかつまづくところもありますが、
最新ソースをpull > バッチモードでUnityBuild > xcodeprojectからipaを作成 > DeployGateにアップロードして配布までを自動化できました。

これで少しデバッガさんやプロジェクトメンバーへの配布も楽にできました。
なぜipaファイルがXcodeプラグインの設定で作成出来ないのかがちょっと気がかりですが、
この記事は以上で完了とします。

ご意見マサカリ等歓迎致します。