2

我正在尝试在我的 iOS 应用中实施 AdMob。我遵循了他们在此处提供的文档。因此,我尝试构建并运行,但出现以下错误:

Undefined symbols for architecture i386:
  "_NSOverwriteMergePolicy", referenced from:
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
  "_NSSQLiteErrorDomain", referenced from:
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_NSSQLiteStoreType", referenced from:
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_MFMailComposeViewController", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
  "_OBJC_CLASS_$_MFMessageComposeViewController", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
  "_OBJC_CLASS_$_NSAttributeDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_NSEntityDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGDataProvider.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_NSFetchRequest", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
  "_OBJC_CLASS_$_SKStoreProductViewController", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
  "_SKStoreProductParameterITunesItemIdentifier", referenced from:
      -[GADOpener openInAppStore:fallbackURLString:] 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)

编辑 1:我添加了 Storekit 和 MessageUI 框架以及Obj-C链接器标志,现在我得到了:

Undefined symbols for architecture i386:
  "_NSOverwriteMergePolicy", referenced from:
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore contextWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore contextWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore contextWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_NSSQLiteErrorDomain", referenced from:
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_NSSQLiteStoreType", referenced from:
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      anon in libGoogleAnalyticsServices.a(TAGModel.o)
      anon in libGoogleAnalyticsServices.a(GAIDataStore.o)
      -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_OBJC_CLASS_$_NSAttributeDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSEntityDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGDataProvider.o)
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSFetchRequest", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_OBJC_CLASS_$_NSManagedObject", referenced from:
      _OBJC_CLASS_$_GAIHit in libGoogleAnalyticsServices.a(GAIHit.o)
      _OBJC_CLASS_$_TAGHit in libGoogleAnalyticsServices.a(TAGHit.o)
      _OBJC_CLASS_$_GAIProperty in libGoogleAnalyticsServices.a(GAIProperty.o)
      _OBJC_CLASS_$_GAIProperty in libGoogleAnalytics_debug.a(GAIProperty.o)
      _OBJC_CLASS_$_GAIHit in libGoogleAnalytics_debug.a(GAIHit.o)
  "_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalytics_debug.a(GAIDataStore.o)
  "_OBJC_METACLASS_$_NSManagedObject", referenced from:
      _OBJC_METACLASS_$_GAIHit in libGoogleAnalyticsServices.a(GAIHit.o)
      _OBJC_METACLASS_$_TAGHit in libGoogleAnalyticsServices.a(TAGHit.o)
      _OBJC_METACLASS_$_GAIProperty in libGoogleAnalyticsServices.a(GAIProperty.o)
      _OBJC_METACLASS_$_GAIProperty in libGoogleAnalytics_debug.a(GAIProperty.o)
      _OBJC_METACLASS_$_GAIHit in libGoogleAnalytics_debug.a(GAIHit.o)
  "_llvm_gcda_emit_arcs", referenced from:
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDefaultLogger.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDataStore.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIError.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIHitUtil.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIURLConnection.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackedViewController.o)
      ...
  "_llvm_gcda_emit_function", referenced from:
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDefaultLogger.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDataStore.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIError.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIHitUtil.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIURLConnection.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackedViewController.o)
      ...
  "_llvm_gcda_end_file", referenced from:
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDefaultLogger.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDataStore.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIError.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIProperty.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIHitUtil.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIURLConnection.o)
      ...
  "_llvm_gcda_increment_indirect_counter", referenced from:
      -[GAITrackerImpl gai_set:value:] in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      -[GAITrackerImpl gai_get:] in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      -[GAITrackerImpl gai_send:] in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalytics_debug.a(GAIDataStore.o)
      _GAIReachabilityStatusString in libGoogleAnalytics_debug.a(GAIReachabilityChecker.o)
      -[GAI defaultTracker] in libGoogleAnalytics_debug.a(GAI.o)
      -[GAI setDefaultTracker:] in libGoogleAnalytics_debug.a(GAI.o)
      ...
  "_llvm_gcda_start_file", referenced from:
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDefaultLogger.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAITrackerImpl.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIDataStore.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIError.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIProperty.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIHitUtil.o)
      ___llvm_gcov_writeout in libGoogleAnalytics_debug.a(GAIURLConnection.o)
      ...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 回答 2

6

AdMob 文档说:

SDK 库引用了六个 iOS 开发框架,它们可能尚未成为您项目的一部分:

  • StoreKit
  • 音频工具箱
  • 消息界面
  • 系统配置
  • 核心图形
  • 广告支持
  • 事件套件
  • EventKitUI

您可以通过项目视图添加这些框架,如参考文档中所示和解释。您还必须使用 -ObjC 链接标志。

编辑:

确保以与添加 iOS 框架相同的方式将 Google 库添加到您的项目中。看看这个问题和答案

于 2013-09-29T19:22:12.883 回答
1

您是否完成了第三步:

添加所需的链接器标志

您现在需要将 -ObjC 添加到应用程序目标的构建设置的 Other Linker Flags 中:

在 Xcode 的项目导航器中,按下蓝色的顶级项目图标。单击您的目标,然后单击“构建设置”选项卡。在 Other Linker Flags 下,将 -ObjC 添加到 Debug 和 Release。

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

于 2013-09-29T19:18:21.620 回答