iOSとAndroidのプロジェクトを統合する

最近cocos2d-xをよく勉強してます。
cocos2dのドキュメントはたくさん出てくるけど、
なかなかxのは出てこない...

読み替えたり、挙動が若干ちがったりと一苦労です。

前、環境構築の時にもすこし触れましたが、
最初に悩んだXcodeのプロジェクトとAndroidのプロジェクトどう統合するかの手順をもう少し詳しく説明します。

正規の手順かはどうだかわかりません。

Androidプロジェクト作成

cocos2d-xのルートディレクトリにターミナルで移動してcreate-android-project.shを実行します。

$ ./create-android-project.sh

ルートディレクトリに移動しないといけないのが何ともですが、
Bundle IDなどを入力すると無事プロジェクトが出力されます。


MofuMofuというプロジェクトつくりました。


プロジェクトがcocos2d-xのルートに出力され、
ファイルがたくさんあってみづらいので、好きなところに移動させます。
自分はいつも~/Projectsってとこにいろいろ置いてます。

Xcodeプロジェクト作成

Xcodeを立ち上げCreate a New Xcode Projectで
Cocos2d-xを選びます。

こちらも手順どおりすすめて
さっき作ったAndroidプロジェクトの中に保存します。

XcodeのほうもMofuMofuというプロジェクト名で保存したので、
プロジェクト全体はこんな感じになります。

ここでいったんXcodeを終了させて
いま作ったXcodeプロジェクトのディレクトリ名をproj.iosに変更します。
こんな感じになります。

Xcodeプロジェクト設定

作成したXcodeプロジェクトを再度開きます。

XcodeからClassesを削除します。
またプロジェクト名/Resourcesの
CloseNormal.png
CloseSelected.png
HelloWorld.png
を削除して、アイコン画像やスプラッシュinfo.plistなどiOSアプリに必要なリソースだけにします。


次に、Androidプロジェクトと共有する
ClassesとResourcesのディレクトリをインポートします。

Fils -> Add Items To ....からproj.iosと同じ階層にあるClassesを選択します。
このときCopy Items Into...オプションは外します。

Resourcesも同様にインポートします。
最終的にXcodeはこんな感じになります。

これでXcodeの設定は完了です。
Runを実行してちゃんと起動すればOKです。

Androidプロジェクト設定

Eclipseを起動します。

File -> Importから
Android -> Existing Android Code Into Workspaceを選択

Cocos2d-xから出力したディレクトリを選択してインポートします。


ここで、Androidプロジェクトを移動してるのでLibraryの参照でエラーがでてます。
プロジェクト名をクリックしてでてくるProperties -> Androidメニューで
エラーになってるlibcocos2dxを削除します。
その後、環境構築でEclipseに追加してあったlibcocos2dxを再度設定します。


で、自分の環境だとAndroidManifest.xmlでもエラーがでてました。
どうやら生成されたアイコン名がiconからic_launcher.pngに変わってるらしく、そこを修正します。


次に、build_native.shを修正します。
COCOS2DX_ROOTを.bashrcとかに追加してある場合はコメント化、
それかCocos2d-xのルートディレクトリを直に設定します。

38 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
39 # ... use paths relative to current directory
40 # COCOS2DX_ROOT="$DIR/../.."
41 APP_ROOT="$DIR/.."
42 APP_ANDROID_ROOT="$DIR"


とりあえず設定はこれで終了です。
Androidでもビルドして起動してみます。

build_native.shを実行します。

$ .build_native.sh

Android機をつないで、
EclipseからRunします。
iOSと同じ画面が出たでしょうか。

実際の開発のながれ

Xcodeでソースなどを追加、編集、デバッグをメインでやって
ある程度機能ができたらEclipseでAndroidのデバッグって感じでしょうか。
jni/Android.mkにソースのリストを追加しないといけないないですし


まだまだ、わからいことが多いですが、
慣れてきたらそのうち開発自体のTipsものせていきたいです。