蜂 Cocos2d-xのプロジェクトをAndroidやiOS端末で実行する

#目次
1 はじめに
2 Cocos Code IDEでデバッグ実行する
3 Cocos Code IDEからリリースビルドを生成する
4 Cocos Code IDEのプロジェクトをEclipseやxCodeでビルドして実行する
5 今後の予定

#はじめに
本記事は、cocos2d-xおよびCocos Code IDEを導入し、絵を表示して、タッチに応答させて絵を動かした人で、そろそろAndroidやiPhoneの実機端末で動かしたい人向けの、覚書です。まず、Cocos Code IDEの設定を確認し、その後Luaプロジェクトのデバッグ実行へと進んでいきます。

#Cocos Code IDEからデバッグ実行する
Coco Code IDE上部のメニューから、ウィンドウ→設定をクリックして、設定ダイアログを開きます。設定ダイアログ左のCocosをクリックします。ここで、Android SDK、NDK、ANT、JDKを設定する必要があります。

![9 config android sdks.png](https://qiita-image-store.s3.amazonaws.com/0/90495/f798a73f-af70-86fc-9af3-18bb96f48e7d.png)

SDKには、Android SDKのフォルダを指定し、
NDKには、Android NDKバージョンR9D android-ndk-r9d-windows-x86_64(64ビットマシンの場合)がインストールされたフォルダを指定し、
ANTには、Apache Antをインストールしたフォルダを指定し、
JDKには、JDKのインストールフォルダ内にあるbinフォルダを指定します。
OKボタンを押して設定ダイアログを閉じた後、Cocos Code IDEの上部メニューからデバッグ配置ボタンをクリックし、デバッグ構成ダイアログを開きます。

![9 open debug config.png](https://qiita-image-store.s3.amazonaws.com/0/90495/c9f81346-2306-7aab-a634-84534ed276ad.png)

ターゲットのプラットフォームでAnroid ADBモードにチェックを入れ、適用ボタンを押した後、閉じるボタンを押して、ダイアログを閉じます。

![9 config debug target.png](https://qiita-image-store.s3.amazonaws.com/0/90495/7c73dbe7-3aee-c62f-f432-278c2dc65fe8.png)

その後、Cocos Code IDEの上部メニューから、Android Runボタンを押すといよいよAndroid端末での実行が開始されます。

![9 start debug run.png](https://qiita-image-store.s3.amazonaws.com/0/90495/c061adf4-5249-528f-8161-73c2a53e367a.png)

デバッグ実行用のアプリはPrebuiltRuntimeLuaという名前で端末にインストールされ、自動的に起動されます。

![8 PrebuildRuntie.png](https://qiita-image-store.s3.amazonaws.com/0/90495/4084d810-48a3-c015-3d51-4874e8476ede.png)

デバッグに使用するAndroid端末がPCと同一のネットワークに接続されていないと、端末で青い画面が表示され、そこで画面が止まります。

![8 blue screen.png](https://qiita-image-store.s3.amazonaws.com/0/90495/eb431d21-6a3a-a740-30f8-58ff66bb390d.png)

これはCocos Code IDEのデバッガと接続待ち中に表示される画面です。デバッグ実行時には、Cocos Code IDEが実行されているPCとアプリが実行されるAndroid端末を、同一ネットワークにつなげておきましょう。

以上が、端末にデバッグビルドのアプリを転送し実行するための簡単な説明です。今度は、リリースビルドのアプリを生成し、端末に転送してみましょう。

#Cocos Code IDEからリリースビルドを生成する
Cocos Code IDE上部のメニューから、ビルドボタンからAPKにパッケージするをクリックします。

![9 build for Android.png](https://qiita-image-store.s3.amazonaws.com/0/90495/22ab5410-66fb-c030-9e3b-e79f37273448.png)

C++コードを追加しますか？という旨のダイアログが表示されるのでYESをクリックします。

![9 add c++ code.png](https://qiita-image-store.s3.amazonaws.com/0/90495/45a291cf-79b8-1968-2d2b-2257485723c6.png)

ネイティブコード生成ダイアログが表示されるので、そのまま作成ボタンを押します。ちなみに、パッケージ名やバンドルID名は、後からEclipseやxCodeでそれぞれ変更できます。

![9 Generate Native Source Code.png](https://qiita-image-store.s3.amazonaws.com/0/90495/161f85df-1336-79b1-eaa1-2d68790f84be.png)

続いて、"Start"工事を建設するダイアログが表示されるのでこちらも特に変更せず作成ボタンを押します。ちなみに、構成オプションのAndroid SDKバージョンはそこそこ数字の大きなやつを選択したほうが無難です。android-10ではビルドエラー、android-19でOKでした。

![9 Start Construction with debug keystore.png](https://qiita-image-store.s3.amazonaws.com/0/90495/329d1867-d23f-90d7-e410-ac365a6c0e57.png)

進行状況ダイアログが表示されます。自分のPC環境では、初回、このダイアログで10分程度待ちました。次回以降は数分弱程度になりました。

その後、梱包成功が表示されればビルド成功です。

![9 Build suceeded and install.png](https://qiita-image-store.s3.amazonaws.com/0/90495/1b0a8dcd-10cc-5bad-9e51-86f75954bdf9.png)

PCに接続されているAndroid端末が下に表示されて、インストールボタンを押せば、端末にアプリが転送されます。このアプリはプロジェクト名でインストールされます。端末を自分で操作してアプリを起動してみましょう。

![8 project name icon.png](https://qiita-image-store.s3.amazonaws.com/0/90495/0baa2418-62ff-1f87-298f-76a0054b2670.png)

#Cocos Code IDEが生成したプロジェクトをEclipseやxCodeでビルドして実行する
ここまでビルドしてきたアプリですが、EclipseおよびxCode向けのプロジェクトフォルダは下記場所に配置されています。それぞれ対象の開発環境に読み込むことでビルド実行できます。

Eclipse
>(Cocos Code IDEのワークスペースフォルダ)\(プロジェクト名)\frameworks\runtime-src\proj.android

Eclipseでのビルドには、下記フォルダにあるライブラリプロジェクトlibcocos2dxもインポートします。

>(Cocos2d-xインストールフォルダ)\cocos\platform\android\java

![8-5 Eclipse start libcocos2dx.png](https://qiita-image-store.s3.amazonaws.com/0/90495/151f7a08-d5cf-67b7-6b18-342a085b9b91.png)

また、ビルドしたいアプリのプロジェクト(ここではStart)のプロパティー→Androidにて、ライブラリーにlibcocos2dxを追加してビルドします。

![8-6 Eclipse Android reference to libcocos2dx.png](https://qiita-image-store.s3.amazonaws.com/0/90495/ed5f2975-fedb-811a-672a-7d0ce7d728cd.png)

xCode
>(Cocos Code IDEのワークスペースフォルダ)\(プロジェクト名)\frameworks\runtime-src\proj.ios_mac\Start.xcodeproj

xCodeの場合Edit SchemeからReleaseを選択してビルドすると、そのまま実行できます。Edit SchemeからDebugを選択している場合、アプリ起動時の青い接続待ち画面で、Cocos Code IDEからリモートデバッグモードで接続してやるとデバッグ実行できます。

#今後の予定
実機で実行し始めると、Android、iOSといったプラットフォーム毎に処理を分けたい部分がでてくることがあります。例えば3rdパーティのランキングサービスとの結合で、AndroidとiOSでAPIが異なっており、Luaからは直接アクセスできない場合等です。

次回は、Cocos2d-x Luaコード内でプラットフォーム毎に処理を切り分け、LuaからJavaやObjective-CのAPIを呼び出す方法について説明します。