読者です 読者をやめる 読者になる 読者になる

WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

お手軽にJenkinsを使ってCocos2d-xのソースをビルドしてみる(Androidビルド編)

Cocos2d-x Jenkins

今回のエンジニアブログ担当の岩原です。
前々回前回に引き続き、今回もJenkinsについて書きたいと思います。
まずは、前回までのおさらいから。

・Jenkinsとは Javaで作られているCIサーバーの1つです。 オープンソースなので、手軽に利用できます。 ・そもそもCIサーバーとは? 継続的インテグレーション(continuous integration)のためのアプリケーションサーバーのことです。 ビルドやデプロイ、ユニットテストなどのソフトウェアの開発にかかるいろいろな手順を代わりに自動でやってくれる賢いヤツです。

構築にあたっての前提は以下のとおりです。

【前提】
・Macであること。(要OS X 10.5以上)
・Xcodeがインストール済みであること。
・XcodeからCocos2d-xのiOSアプリがビルド&実行が出来る状態であること。
・Eclipseなどを使用して、Cocos2d-xのAndroidアプリがビルドできる状態であること。
・ソースがGitで管理されていること(別のSCMを使用している場合は適宜読み替えてください)

今回は、太字の箇所について書きたいと思います。
取り消し線の箇所は前回までに取り上げた箇所です。

  1. HomeBrewのインストール
  2. Gitのインストール
  3. Jenkinsのインストール
  4. プラグインのインストール&アップデート
  5. Jenkinsの設定変更(Git)
  6. ジョブの作成(iOS)
  7. ビルドの実行(iOS)
  8. Androidのビルドの準備
  9. Antのインストール(Jenkinsから自動インストール)
  10. ジョブの作成(Android)
  11. ビルドの実行(Android)
  12. Service Hook の設定(GitHub)TestFlightへのアップロード設定
  13. ジョブの設定変更(iOS、Android)

「Service Hook の設定(GitHub)」については、今回の環境では不可能であるということを失念していたため、代わりにTestFlightへのアップロードを自動化する方法に変更します。

今回はAndroidのビルドの準備からビルドの実行までを行います。

8.Androidのビルド準備

Antを使用してビルドを行うため、Antの設定が必要です。
対象ファイルはbuild.xmlとant.propertiesになります。
build.xmlはcocos2d-xのプロジェクトを作成した際に同時に作成されるため、特に変更する必要はありません。
ant.propertiesでは、apkファイルに施す署名ファイルとパスワードの設定を記述します。

key.store=署名用キーストアのファイル名  
key.store.password=署名用キーストアのパスワード  
key.alias=署名用キーストアの別名  
key.alias.password=署名用キーストアの別名のパスワード  

9.Antのインストール(Jenkinsから自動インストール)

次に、Antのインストールを行います。
AntはJenkinsの機能を使用し、インターネット経由で自動ダウンロード&インストールを行います。

まずは、トップ画面から「Jenkinsの管理」をクリック。 2013-08-07-01

次に、Jenkinsの管理画面から、「システムの設定」をクリック。 2013-08-07-02

中程にある「インストール済みAnt」をクリック。 2013-08-07-03

名前だけ入力し、「保存」をクリック。 2013-08-07-04

これで、Antの自動ダウンロード&インストールの準備は完了です。

10.ジョブの作成(Android)

Android用のジョブを作成します。
iOS版とは違い、Android用のビルドを行うためには、以下の手順を踏む必要があります。
ビルドのみ設定が違うため、ここではビルドの設定を記載します。
その他の設定は前回の方を参照してください。

1.ネイティブコードのビルド
build_native.shを実行する。なお、実行する前に以下の環境変数を設定する必要があります。
・NDK_ROOT=:Android NDKのパスを設定
・ANDROID_SDK_ROOT=:Android SDKのパスを設定
・PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools
・PATH=$PATH:${ANDROID_SDK_ROOT}/tools
2.各Javaプロジェクトの設定更新
各ユーザーでパスが変えられることがあるので、androidコマンドを使用し、設定をJenkinsマシン用に更新します。

以下のコードを、

export NDK_ROOT="Android NDKのパスを設定";  
export ANDROID_SDK_ROOT="Android SDKのパスを設定";  
export PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools  
export PATH=$PATH:${ANDROID_SDK_ROOT}/tools  
  
cd $WORKSPACE/プロジェクト名/proj.android  
android update project --path .  
./build_native.sh  
  

ビルドの設定からシェルの実行を選んで入力します。 2013-08-07-05

3.Antビルドの設定
Jenkinsの管理で設定したAntを使用してAntビルドを行います。

ターゲットは基本的にrelease(署名付き)を指定しますが、デバッグで行いたい場合はdebugを指定します。 2013-08-07-06

また、ビルドファイルは「プロジェクト名/proj.android/build.xml」を指定します(cocos2d-xのフォルダ構成のため)。 さらに、プロパティにfile.encoding=UTF-8を指定します(ファイルエンコードの設定なので、不要な場合あり)。 2013-08-07-07

ビルド後の手順として、成果物の保存を行います。
保存するファイルは以下のファイルです。
指定方法などは前回の記事を参照してください。

プロジェクト名/proj.android/bin/アプリ名-release.apk

上記設定を行ったら、保存ボタンをクリックして、ジョブを保存します。

11.ビルドの実行(Android)

前回と同じように、ビルドボタンをクリックするとビルドが開始します。 2013-08-07-08

以上でAndroid版のビルドは完了です。
ビルドに成功すれば、apkファイルが成果物として作成されます。
次回は、この成果物をTestFlightへアップロードする手順を自動化する方法について書きたいと思います。