Project Unknown's Blog

Peojct.Unknownと言う名前で細々とアプリ開発をやってるメンバーのブログです。

我がトラウマ、広告実装(AdMod)を行う

どうも、久々に投稿させて頂きます。どうまずです。

今回は時間がかかって、大変な思いをした広告実装について書きました。

Unityの場合、公式でサポートされているので、まずはプラグインをダウンロード。

ダウンロード先:https://github.com/googleads/googleads-mobile-plugins/releases/tag/v2.2.1

次にダウンロードしたプラグインをunityにimportする。
unityを立ち上げ、目的のプロジェクトを開く。
その後、Assets>Import Pakage>Custom Pakageと移動し、
importするパッケージを聞かれるので、ダウンロードしたファイルGoogleMobileAds.unitypackageを選択する。

すると、下記のようなダイアログが上がるので、とりあえず、全部importする。

20150604_01.png

importすると、下記のようにAssets内にそれらしいフォルダが作成されている。

20150604_02.png

Androidの場合はなにやら設定が必要なようですが、
今回はiOSのみで実施するので、とりあえず無視!

iOSの場合、
File>Build Settingを選択、対象OSを聞かれるので、もちろんiOSを選択。
unityでは、ここでbuildしてしまえばおしまいらしい。
次はXcodeでの作業になる。
んで、Xcodeを開くと早速、10件近いエラーが発生。(トラウマ)

ここで、unityのプラグインではなく、iOSSDKを利用するようなので、ダウンロードする。
ダウンロード先:https://developers.google.com/mobile-ads-sdk/download?hl=ja

SDKをダウンロードしたら、手動でimportする。
まずはフレームワークを追加。
プロジェクトを右クリックし、Add File to XXXXを選択。
追加対象を聞かれるので、GoogleMobileAds.frameworkを選択する。

そうすると、あら不思議、エラーが綺麗になくなりました!
うそ、やった!やったよ〜〜!

よし、実行だ〜〜〜って、実行したら、エラーが23個も発生・・・
心が・・・心が折れそうだ・・・・

って、焦って作業の続きをしていなかっただけであった。
フレームワークがプロジェクトに入っていない可能性があるので、確認に、場合によっては追加する必要があった。

よし、では確認だ・・・って、どうやって確認するのかいまいちわからないので、調査。

下の画面みたいに辿っていけばフレームワークみれます。

20150604_04.png

確かめるフレームワークは下記の通り。
なかったら、追加だそうだ。

  • AdSupport ×
  • AudioToolbox ○
  • AVFoundation ○
  • CoreGraphics ○
  • CoreTelephony ×
  • EventKit ×
  • EventKitUI ×
  • MessageUI ×
  • StoreKit ×
  • SystemConfiguration ○

私の場合は4つしかなかったので、あとは追加
これで、再ビルド、エラーよ消えろ!

またまた、エラーが23個・・・心が・・・折れそうだ・・・。

まだ、ソースコードを一切記載していないためなのかもしれない。
と思い、サンプルソースをそのまま記載したが、エラーが全く減らない。

/Users/doumazu/patapata-unon/PatapataUnonXcode/Libraries/GADURequest.h:3:1: Use of '@import' when modules are disabled

エラーの内容を調査してみると、
どうやら、importがうまく動作していないようだ。

調査すると、

@import Foundation;

と「@import」と記載されている部分を一つずつ下記のように書き換え

#import <Foundation/Foundation.h>

と書き換え。
すると、エラーが消えて、buildが成功しました。

あと、
不確定な情報ですが、いろいろ調査すると、
下記の処理を実施するようにと記載されているサイトが何箇所かありました。

Build settingsのOther Linker Flags に-ObjCを追加する

だけれども、私の場合、やってもやらなくても結果は変わらずでした。
もし、なぜかエラーが出続ける場合は、試してみるのも価値があると思います。