web-dev-qa-db-ja.com

adMobを追加するときのアーキテクチャの未定義のシンボル

プロジェクトにAdMobを追加していますが、次のエラーが発生します。

アーキテクチャi386の未定義のシンボル:

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

私が追加しました:

StoreKit
AudioToolbox
MessageUI
SystemConfiguration
CoreGraphics
AdSupport

また、-ObjCリンクフラグも使用します。

何が問題ですか?

ありがとう!

22
user3745888

Google Admob SDK 6.11から6.12にアップグレードしたところ、同じエラーがポップアップしました。

プロジェクトナビゲーターで、上部のプロジェクトプロパティをクリックし、正しいターゲットが選択されていることを確認します。 [ビルドフェーズ]タブに移動し、[バイナリをライブラリにリンク]までスクロールします。 EventKit.frameworkEventKitUI.frameworkの両方をこのリストに追加します。

いつものように、プロジェクトをクリーンアップしてビルドします。エラーはなくなるはずです。

55
GMBrian

これらのライブラリをすべて追加したことを確認してください

  • AdSupport
  • AudioToolbox
  • AVFoundation
  • CoreGraphics
  • コアテレフォニー
  • EventKit
  • EventKitUI
  • MessageUI
  • StoreKit
  • システム構成
10
Aemgtz

私にはこの問題があり、MessageUI.frameworkがありませんでした。

これは、AdMobに含める必要があるフレームワークの最新リストです(2016年7月)。

AdSupport.framework,
EventKit.framework,
EventKitUI.framework,
CoreTelephony.framework,
StoreKit.framework,
MessageUI.framework
0
Deyan Vitanov

この追加のEvenKitフレームワークを解決します。 SdkiOS 6.12では、これは私のエラーを解決するために必要です。

0
user3745888

2017年6月5日

Google Mobile Ads SDKバージョン7.20.0の場合、次のフレームワークが必要です。

  • GLKit
  • コアテレフォニー
  • CoreMedia
  • CoreVideo
  • MessageUI
  • CFNetwork
  • MobileCoreServices
0
Ehtesham Hasan