cocos2d-xにnend広告を表示させる方法 for iphone
概要
前回はandroid向けのcocos2d-xアプリでnend広告を表示させる方法を記事にしたけど、iOS向けアプリでもマニュアルに載ってないポイントがあるのでメモしておく。
いずれにしてもjava scriptを貼ればいいようなレベルじゃないので面倒臭いっす。。
手順
1.nendからSDKとモジュールをダウンロードする
nendにログインして[広告枠の管理]からSDKをダウンロードする。
次にnendメディアパートナー向け資料一覧から[cocos2d-xモジュール2.2用]をダウンロードする。それぞれを展開しておく。
2.Xcodeにnendモジュールを追加する
[NendAd]フォルダごと、開発プロジェクトにドラッグ&ドロップする。
その際に必ず[Copy Itens into destination group's folder of needed]と[Create groups for any added folder]にチェックを入れておくこと。
3.フレームワークを追加する
プロジェクトをクリックしてTARGETS>General>Link Frameworks With Libraries項目を開く。続いてプラスマークをクリックして以下のフレームワークを追加する。
- AdSupport.framework
- Security.framework
- ImageIO.framework
この時、[AdSupport.framework]をRequiredからOptionalに変更する。
4.ライブラリのパスを修正する
先ほどのフレームワークの中にある[libcurl.a]は赤色になっており、リンク切れを起こしている。なので、これを修正する。
まずは赤字になっている[libcurl.a]をマイナスマークで削除。
次にcocos2dx/platform/third_party/ios/librariesディレクトリ内にある[libcurl.a]ファイルをxcodeのフレームワーク上にドラッグ&ドロップで追加する。
あとは[libwebsockets.a]へのリンクも切れているので、プロジェクトをクリックしてTARGETS>Build Settings>Search Paths>Library Search Paths項目を開く。
以下のようにダブルクォーテーション(引用符)を削除する。この辺はマニュアルには載ってないのでハマりどころ。注意!
"$(SRCROOT)/../../../external/libwebsockets/ios/lib" ↓↓↓ $(SRCROOT)/../../../external/libwebsockets/ios/lib
大体こんな感じになっていればOK!
5.cocos2d-xモジュールをxcodeに追加する
Nendモジュールのファイル(NendModule.h、
NendIconModule.h、NendModule.mm、NendIconModule.mm)をプロジェクトに追加する。
NendModule.hとNendIconModule.hはそのままxcodeの[Classes]フォルダへドラッグ&ドロップすれば良い。
NendModule.mmとNendIconModule.mmは[プロジェクトフォルダ/proj.ios]フォルダ内に1度コピーしてから、そのファイルを今度はxcodeの[ios]フォルダにドラッグ&ドロップする。
通常のドラッグ&ドロップだと、なぜか[ios]フォルダ内にファイルがコピーされない。なので、この手順を踏まないとコピー元がなくなるとエラーになるから注意!
6.nend広告を表示するコードを追加する
広告を表示したいsceneに[NendModule.h]をincludeする。
#include "HelloWorldScene.h" #include "NendModule.h" USING_NS_CC; CCScene* HelloWorld::scene() { ...
広告を表示するプログラムを追加する。apiKeyとspotIDは適宜変更しておくこと。
// on "init" you need to initialize your instance bool HelloWorld::init() { ... // add the sprite as a child to this layer this->addChild(pSprite, 0); char apiKey[] = "8932b68d22d1d32f5d7251f9897a6aa64117995e"; char spotID[] = "71000"; NendModule::createNADViewTop(apiKey, spotID); return true; }
以上で、クリーン&ビルドするとnend広告が表示されるはず。ちょっと広告の下の方が切れてますが、こんな感じ。
nend広告は好きな位置で表示できるので、その辺はマニュアルを見てください。ではー