Reputation: 2866
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
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
Reputation: 6823
Did you complete step three :
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