AdMob SDK 6.2.0(Xcode 4.5(4G182)をインストールし、iPhone 4Sとシミュレーターでテストしています)。チュートリアルに従って、AdMobに一度バナーを表示させたいだけです。しかし、最後の行でクラッシュします:
self.bannerView = [[GADBannerView alloc]
initWithFrame:CGRectMake(0.0,
self.view.frame.size.height -
GAD_SIZE_320x50.height,
GAD_SIZE_320x50.width,
GAD_SIZE_320x50.height)];
self.bannerView.delegate = self;
self.bannerView.adUnitID = @"xREMOVEDBYMEx";
self.bannerView.rootViewController = self;
[self.view addSubview:self.bannerView];
GADRequest * request = [GADRequest request];
request.testing = YES;
[self.bannerView loadRequest:request];
クラッシュは
2012-09-28 09:03:58.268 NewProject [1467:c07]-[GADObjectPrivate changeState:]:認識されないセレクターがインスタンス0x95c17d0に送信されました2012-09-28 09:03:58.276 NewProject [1467:c07] *キャッチされない例外 'NSInvalidArgumentException'によるアプリの終了、理由: '-[GADObjectPrivate changeState:]:認識されないセレクターがインスタンス0x95c17d0に送信されました'
これはライブラリのバグのように見えますが、それは非常にありそうにないと思います。何かご意見は?
編集:サンプルプロジェクトでもまったく同じコードが機能します。私のプロジェクトファイルで間違ってできることがあり、そのエラーが発生する可能性はありますか?
_-ObjC
_をアプリケーションターゲットのビルド設定のOther Linker Flagsに追加する必要があります。
-ObjC
_ デバッグソース: https://developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios-linker
また、必ずクリーンと再構築を実行してください
私にとって最善の解決策は、代わりに-force_loadフラグを使用することです-ObjC
それでも問題が解決しない場合は、-Objcではなく-ObjCであることを確認してください。ジーズ、何週間かかけて理由を突き止めました。
Obj-cリンカーフラグを追加しようとしても、広告を読み込もうとしたときに同じ「認識されないセレクターがインスタンスに送信されました」というエラーが表示される場合は、修正が見つかりました。これは最新のXCode(バージョン8.1)用です。
参考のために:
ドロップダウンを見ると、GADBannerViewがオプションとして利用可能であることがわかり、選択しました。
それを選択した後、アプリは問題なく実行され、リンカーフラグを追加する必要はありませんでした(既定では空でした)。
これが他の誰かに役立つことを願っています!