ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

cocos2d-xにnend広告を表示させる方法 for iphone

概要

前回はandroid向けのcocos2d-xアプリでnend広告を表示させる方法を記事にしたけど、iOS向けアプリでもマニュアルに載ってないポイントがあるのでメモしておく。

いずれにしてもjava scriptを貼ればいいようなレベルじゃないので面倒臭いっす。。

環境

mac os
xcode5
cocos2d-x 2.2.3
iphone5s

手順

1.nendからSDKとモジュールをダウンロードする

nendにログインして[広告枠の管理]からSDKをダウンロードする。

f:id:kawai_norimitsu:20140720152052p:plain

次にnendメディアパートナー向け資料一覧から[cocos2d-xモジュール2.2用]をダウンロードする。それぞれを展開しておく。

2.Xcodeにnendモジュールを追加する

[NendAd]フォルダごと、開発プロジェクトにドラッグ&ドロップする。

f:id:kawai_norimitsu:20140721224244p:plain

その際に必ず[Copy Itens into destination group's folder of needed]と[Create groups for any added folder]にチェックを入れておくこと。

f:id:kawai_norimitsu:20140721224607p:plain

3.フレームワークを追加する

プロジェクトをクリックしてTARGETS>General>Link Frameworks With Libraries項目を開く。続いてプラスマークをクリックして以下のフレームワークを追加する。

  • AdSupport.framework
  • Security.framework
  • ImageIO.framework

この時、[AdSupport.framework]をRequiredからOptionalに変更する。

f:id:kawai_norimitsu:20140721225215p:plain

4.ライブラリのパスを修正する

先ほどのフレームワークの中にある[libcurl.a]は赤色になっており、リンク切れを起こしている。なので、これを修正する。

まずは赤字になっている[libcurl.a]をマイナスマークで削除。

次にcocos2dx/platform/third_party/ios/librariesディレクトリ内にある[libcurl.a]ファイルをxcodeフレームワーク上にドラッグ&ドロップで追加する。

f:id:kawai_norimitsu:20140721225917p:plain

あとは[libwebsockets.a]へのリンクも切れているので、プロジェクトをクリックしてTARGETS>Build Settings>Search Paths>Library Search Paths項目を開く。

以下のようにダブルクォーテーション(引用符)を削除する。この辺はマニュアルには載ってないのでハマりどころ。注意!

"$(SRCROOT)/../../../external/libwebsockets/ios/lib"
 ↓↓↓
$(SRCROOT)/../../../external/libwebsockets/ios/lib

大体こんな感じになっていればOK!

f:id:kawai_norimitsu:20140721230905p:plain

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]フォルダ内にファイルがコピーされない。なので、この手順を踏まないとコピー元がなくなるとエラーになるから注意!

f:id:kawai_norimitsu:20140721231639p:plain

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広告が表示されるはず。ちょっと広告の下の方が切れてますが、こんな感じ。

f:id:kawai_norimitsu:20140721231920p:plain

nend広告は好きな位置で表示できるので、その辺はマニュアルを見てください。ではー