[iOS]adMobの実装(AdMob v6.2.1 -> v6.8.0)

https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals?hl=ja

上をみて普通にやってもリンカーエラーでコンパイルが通らない いろいろ、調べてみたらAdMob v6.2.1は フレームワークに上記のものに加えて

StoreKit.framework AdSupport.framework

をいれないとだめ。また、コンパイルが通るようになっても

[Build Settings]-[Other Linker Flags]

-ObjC -all_load

を加えて実行しないと、こける。日本語版もさっさと更新してくれればいいのにね〜

https://developers.google.com/mobile-ads-sdk/docs/admob/mediation

iAdとadmobのハイブリット実装がやっとでけた…

[追記] libGoogleAdMobAds.aを[Link Binary With Libraries](フレームワークを追加するところ)に加えるのも忘れないように…

[追記2] Library not loaded: /System/Library/Frameworks/AdSupport.framework/AdSupport Referenced from: /var/mobile/Applications/26329A7C-04B0-415A-B8EB-3C59CC1EC0B1/hammerhead.app/hammerhead Reason: image not found のようなエラーがでることがある。 対策として [Link Binary With Libraries]のadSupport.frameworkのrequireをoptionalに変更

http://stackoverflow.com/questions/12594070/dyld-library-not-loaded-different-behavior-for-6-0-simulator-6-0-device

[追記3] どうも、いろいろエラーがおこる。シミュレータではエラーはでなくて、実機(4s)でエラーを吐く場合がある。 いろいろ可能性をつぶしていくと、どうやらAdmob周りらしい。 原因として「必要なframeworkが入っていない」「クラス名の重複」「import時に.hではなく.mを指定している」などがFAQらしいが それならば、シミュレータでビルトが通るのはおかしい。 いろいろ、探ってみたらどうやらアーキテクチャの問題らしい。admob6.21はまだarmv7sには、まだ対応していない。 というわけでBuildSetting>Architectures>Valid Architecturesからarmv7sを削除。 ビルトが通りました。下のサイトに感謝

http://ssdkfk.wordpress.com/2012/09/13/xcode4-5%E3%81%A7mgtwitterengine%E3%81%AEliboauth%E3%81%AElinker%E3%81%8C%E3%81%8A%E3%81%8B%E3%81%97%E3%81%84%E3%81%A8%E8%A8%80%E3%82%8F%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6/

[追記4] 2014-03-29 ようトレをAndEngineからcocos2dに移植中にAdmobをバージョンアップしろしろ、とログに出まくるため、別に困ってはいない ものの、v6.8.0にアップ。そしたら案の定、フレームワークが不足してそうなエラー。 “_OBJC_CLASS_$_CTTelephonyNetworkInfo”, referenced from: objc-class-ref in libGoogleAdMobAds.a(GADDevice.o) とか・・・一応、リファレンス読み直すも、いつも通り足りている様子。まぁ、いつものことだろーと思い、ググったら

http://akira-watson.com/iphone/error/sdk6-7-0_bug.html

CoreTelephony.frameworkが不足とのこと。。。いつもどおりだね・・・上記サイトTHX

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください