Cocos2dxにて、Debug/Releaseビルドの処理を分岐したい時に使う手法について書きます。
この手法を取ることで、Debugビルド時のみDebug画面へ遷移可能にしたり、画面上へDebug表示させる等の仕組みを入れることが可能になります。
環境
- Cocos2dx v3.3
- Xcode 6.1.1
コード
COCOS2D_DEBUG=1 かで分岐させるだけでOKです。
以下の例ではDebugビルド時はデバッグ表示(FPSなど)し、Releaseビルド時は何も表示しません。
#if COCOS2D_DEBUG director->setDisplayStats(true); director->setAnimationInterval(1.0 / 60); #endif
iOSでの仕組み
XcodeのTarget > Build Settings > Preprocessor Macros > Debug を確認すると「COCOS2D_DEBUG=1」がデフォルトで追加されています。一方 Releaseの方はされていません。
Releaseビルド用のScheme作成
Releaseビルド状態を確認しやすくする為に専用のSchemeを作成します。なお、これは必須作業ではありません。
- Xcodeウィンドウ左上のプロジェクト名の場所をクリックして、New Scheme を選択
- 適当に分かりやすい名前(Hoge Release等)を設定
- Xcodeウィンドウ左上のプロジェクト名の場所をクリックして、新規作成したSchemeに切り替え
- Xcodeウィンドウ左上のプロジェクト名の場所をクリックして、Edit Scheme を選択
- Run > Info > Build Configuration を Debug から Release に切り替え
これで登録は完了です。通常時は今までどおりのSchemeでビルド、Release状態を確認したい時は新規追加Schemeに切り替えて確認出来ます。
Android上での仕組み
./build_native.py でのビルドで使うオプション設定で切り替える事が可能です。
# Debug (./build_native.py -b debug と同じ) ./build_native.py # Release ./build_native.py -b release
オプション指定しないとDebugビルド扱いになる点に注意が必要です。その為にもDebug状態ではFPS表示させて一目で判断出来るようにした方が良いです。
Debug/Releaseに関する内容は jni/Application.mk に記載があります。