AdMob SDK v6.2.xの時にも発生していたような気もしますが、Xcode 5(iOS 7 SDK)とAdMob SDK v6.4.1の組み合わせでバナー広告を表示させようとしたところ、実行時に以下のようなエラーメッセージが出力されると共にアプリケーションがクラッシュしてしまいました。
To get test ads on this device, call: request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil];
-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xb37fcc0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xb37fcc0'
これは呼び出そうとした[GADObjectPrivate changeState:]メソッドが存在しない為に例外が発生してしまっています。実装したプログラムに問題ない場合でも、シミュレータ/実機でアプリケーションを実行するとアプリケーションがクラッシュします。
修正の仕方
Xcode 5での修正方法について紹介します。プロジェクトを選択します。
Targetsの「AdMobSample」を選択します。
タブから[Build Settings]を選択します。さらに[All]を選択します。
[Linking]という項目がありますので、[Other Linker Flags]が存在していることを確認します。Other Linker Flagsの右側の空白部分をダブルクリックします。
追加すべきリンクオプションが表示されますので-ObjC
を追加します。
以上で実行時にアプリケーションがクラッシュする不具合は修正できます。