title: Google iOS DFP and Analytics for iOS not working together
body: <p>I'm working on an iOS App where my clients requested to implemente DFP and Google Analytics.</p>
  
  <p>Implementing the ad banners was easy but when I added the libraries requires by Google Analytics, xcode blew up showing 28 errors.</p>
  
  <p>The errors go away when I remove the -ObjC linker flag, but this way the DPF implementation will not work. </p>
  
  <p>Here are the errors, any ideas?</p>
  
  <pre><code>    Undefined symbols for architecture x86_64:
    "_NSOverwriteMergePolicy", referenced from:
        +[TAGModel contextWithURL:] in libGoogleAnalyticsServices.a(TAGModel.o)
        -[GAIDataStore contextWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
    "_NSSQLiteErrorDomain", referenced from:
        -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
    "_NSSQLiteStoreType", referenced from:
        +[TAGModel coordinatorWithURL:] in libGoogleAnalyticsServices.a(TAGModel.o)
        -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalyticsServices.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_$_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_$_NSFetchRequest", referenced from:
        objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
        objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
    "_OBJC_CLASS_$_NSManagedObject", referenced from:
        _OBJC_CLASS_$_TAGHit in libGoogleAnalyticsServices.a(TAGHit.o)
        _OBJC_CLASS_$_GAIHit in libGoogleAnalyticsServices.a(GAIHit.o)
        _OBJC_CLASS_$_GAIProperty in libGoogleAnalyticsServices.a(GAIProperty.o)
    "_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
        objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
        objc-class-ref in libGoogleAnalyticsServices.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_$_NSPersistentStoreCoordinator", referenced from:
        objc-class-ref in libGoogleAnalyticsServices.a(TAGModel.o)
        objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
    "_OBJC_METACLASS_$_NSManagedObject", referenced from:
        _OBJC_METACLASS_$_TAGHit in libGoogleAnalyticsServices.a(TAGHit.o)
        _OBJC_METACLASS_$_GAIHit in libGoogleAnalyticsServices.a(GAIHit.o)
        _OBJC_METACLASS_$_GAIProperty in libGoogleAnalyticsServices.a(GAIProperty.o)
    "_sqlite3_bind_blob", referenced from:
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_bind_int", referenced from:
        -[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_bind_int64", referenced from:
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_bind_text", referenced from:
        -[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_close", referenced from:
        -[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_column_blob", referenced from:
        -[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_column_bytes", referenced from:
        -[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_column_int64", referenced from:
        -[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_column_text", referenced from:
        -[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_errcode", referenced from:
        -[TAGDataLayerPersistentStoreImpl prepareSql:description:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_errmsg", referenced from:
        -[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl tablePresent:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        ...
    "_sqlite3_finalize", referenced from:
        -[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl tablePresent:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_open", referenced from:
        -[TAGDataLayerPersistentStoreImpl openDatabaseAndInitStatements] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_prepare_v2", referenced from:
        -[TAGDataLayerPersistentStoreImpl prepareSql:description:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_reset", referenced from:
        -[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
    "_sqlite3_step", referenced from:
        -[TAGDataLayerPersistentStoreImpl clearKeysWithPrefixSingleThreaded:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl loadSerialized] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl writeEntriesToDatabase:expireTime:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntries:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl peekEntryIds:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl numStoredEntries] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        -[TAGDataLayerPersistentStoreImpl deleteEntriesOlderThan:] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)
        ...
  ld: symbol(s) not found for architecture x86_64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  </code></pre>