とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

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

必要環境

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ファイルを作成するコマンドを自前で用意し、
シェルで追加しておきます。

/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プラグインの設定で作成出来ないのかがちょっと気がかりですが、
この記事は以上で完了とします。

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