cocos2d-xにFirebase導入(iOS)
cocos2d-x v3.10でadmob表示(iOS)
cocos2d-x v3.10でadmobインタースティシャル表示(iOS)
Android Studioを開き、Open an existing android studio projectで
プロジェクト名/proj.android-studioフォルダを開く。
SDKManagerでインストールした最新のNDKだとcocos2d-xが対応していなくてビルドエラーになるので、
r10dをダウンロードして使う。(cocos2d-x v3.10使用 v3.12ならr11c)
参考:過去のリビジョンのNDKを入手する方法
cocos2d-xのフォルダに移動して./setup.pyでNDK_ROOTを設定しておく。
Firebaseを入れる時はAndroid StudioのInstant Runをオフにしないといけないらしいので、
Android Studio->Preferences->Build,~~->Instant Runからオフにする。
Firebaseコンソールでアプリを登録して、
google-services.json
を取得する。
それをappフォルダに入れる。
プロジェクト下のbuild.gradleのdependenciesに、
classpath 'com.google.gms:google-services:3.0.0'
と書く。
appフォルダ以下のbuild.gradleを以下のように変更する。
gradleを変更したら、syncする。
app/src/org.cocos2dx.cpp/AppActivity.javaを変更する。
バナーとインタースティシャルを表示する。
参考:Cocos2d-x 3.5 AdMobのバナー広告を実装する(iOS, Android)
MobileAds.initialize(getApplicationContext(),APP_ID);
で初期化するのに使うAPP_IDは、アドユニットIDとは違うので注意。
Admob管理画面の右上の歯車ボタンを押して、アプリ管理画面から取得できる。
interstitial.isLoaded()はmainUIスレッドで呼ばれないとクラッシュするので、
このように書いてある。
テストデバイスIDは、アプリをrunした時にlog catに
Use AdRequest.Builder.addTestDevice("***************") to get test ads on this device.
と出るので、それをコピペすればよい。
AppActivityのshowIntersAd()を呼ぶ、jniのメソッドを作る。
srcフォルダを右クリックして、new->java classで
com.domain.appname.PlatformUtilというファイルを作る。
はじめのcom.domain.appnameの部分は、アプリのpackageと同じにする。
XCodeに戻って
PlatformUtil.h
PlatformUtil.cpp
PlatformUtil.cppは、XCodeの右ペインのTarget Membershipのチェックボックスを全部外して、
iOSではビルドされないようにする。
これで、任意のタイミングでPlatformUtil::showIntersAd()を呼べば、
Androidでもインタースティシャル広告が出る。