Youssef Moawad
Youssef Moawad

Reputation: 2866

AdMob issues and errors

I am trying to implement AdMob to my iOS app. I followed the documentation that they provide here. So I try to build and run and I get the following errors:

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)

EDIT 1: I added the Storekit and MessageUI frameworks as well as added the Obj-C linker flag and now I'm getting this:

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)

Upvotes: 2

Views: 5836

Answers (2)

QED
QED

Reputation: 9923

The AdMob docs say:

The SDK library references six iOS development frameworks which may not already be part of your project:

  • StoreKit
  • AudioToolbox
  • MessageUI
  • SystemConfiguration
  • CoreGraphics
  • AdSupport
  • EventKit
  • EventKitUI

You can add these frameworks via the project view as shown and explained in the referenced docs. Also you must use -ObjC link flags.

Edit:

Be sure to add the Google libs to your project in the same manner that you added the iOS frameworks. Check out this question and answer.

Upvotes: 6

StuartM
StuartM

Reputation: 6823

Did you complete step three :

Add required linker flags

You now need to add -ObjC to the Other Linker Flags of your application target's build setting:

In Xcode's project navigator, press the blue top-level project icon. Click on your target, then the Build Settings tab. Under Other Linker Flags, add -ObjC to both Debug and Release.

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

Upvotes: 1

Related Questions