web-dev-qa-db-ja.com

IOS6 SDKで最新バージョンのadmobをコンパイルするときにエラーメッセージが表示される

Googles admob sdkの最新バージョンをダウンロードしました。しかし、最新のSDKを使用してXcode 4.5でコンパイルすると、次のエラーが引き続き発生します。

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

何が間違っているのだろうか?

41
Øystein

おそらくAdSupport.frameworkを追加しなかったでしょう。また、-all_loadリンカーフラグを忘れずに削除してください。

181
Deor

Xcode 4.5およびadmob 6.xでのAdSupport.frameworkの必要性

9
zszen

他の方法では、余分なフレームワークを追加せずに修正できます。「-Obj」フラグを「Linking> Other Linker Flags」から削除しますこのフラグがプロジェクトに必要ない場合

私の場合、それは異なっていました。GoogleConvertionTracking.libをサポートしていましたが、リリース顧客のカップルがクライアントからGoogleConvertionTracking.libを削除することに決めました。クライアントから必要なコードをすべて削除した後、このエラー"" _ OBJC_CLASS _ $ _ ASIdentifierManager "、参照元:"のエラーを取得し始めました。

GoogleConvertionTrackingのサポートドキュメントを確認した後、[リンク]> [その他のリンカーフラグ]に「-Obj」コンパイラフラグを追加したことがわかりました。

*rel/debの「Linking> Other Linker Flags」からこの「-Obj」フラグを削除すると、このエラーはなくなります。

このエラーを取り除くためにAddSupport.frameworkを追加する必要はありません。この変更は、コンパイルエラーを回避するために追加のフレームワークを追加したくない場合に役立ちます。

1
mask