I believe just today Google released a new update to their iOS Analytics frame work (version 3.0). When I follow the instructions and try to run the code, I get:
Undefined symbols for architecture armv7: "_inflate", referenced from: l002 in libGoogleAnalyticsServices.a(NSData+zlib.o) "_deflate", referenced from: l001 in libGoogleAnalyticsServices.a(NSData+zlib.o) "inflateInit2", referenced from: l002 in libGoogleAnalyticsServices.a(NSData+zlib.o) "_deflateEnd", referenced from: l001 in libGoogleAnalyticsServices.a(NSData+zlib.o) "_OBJC_CLASS_$_ASIdentifierManager", referenced from: objc-class-ref in libGoogleAnalyticsServices.a(TAGAdvertiserId.o) objc-class-ref in libGoogleAnalyticsServices.a(TAGAdvertisingTrackingEnabledMacro.o) objc-class-ref in libGoogleAnalyticsServices.a(TAGMobileAdwordsUniqueIdMacro.o)
"_inflateEnd", referenced from: l002 in libGoogleAnalyticsServices.a(NSData+zlib.o) "_SCNetworkReachabilityCreateWithName", referenced from: l027 in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o) l002 in libGoogleAnalyticsServices.a(TAGNetReachability.o) "_SCNetworkReachabilitySetCallback", referenced from: l027 in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o) l002 in libGoogleAnalyticsServices.a(TAGNetReachability.o) l003 in libGoogleAnalyticsServices.a(TAGNetReachability.o) "deflateInit2", referenced from: l001 in libGoogleAnalyticsServices.a(NSData+zlib.o) "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: l027 in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o) l002 in libGoogleAnalyticsServices.a(TAGNetReachability.o) "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: l027 in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o) l003 in libGoogleAnalyticsServices.a(TAGNetReachability.o) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Possible they forgot to include a lib I need to add? (some other aspects of the instructions they forgot to change as well). Otherwise have followed their instructions to a tee and still not getting the needed results.
Till third party developers do not enable
BITCODE
for their old libraries, you can disable bit code in your own project if you are not going to have a Apple Watch extension for you application.I had
libz.dylib
andAdSupport.framework
as per instruction from Google, it worked fine.Then I had to add
-all_load
in other linker flags for some other library dependency, then google analytics started failing build with linker error.I had to add
libsqlite3.0.dylib
framework to get it to work.So there is something to do with
-all_load
linker flagI downloaded version 3.06 of the Google Analytics Services for iOS in early April 2014, and STILL ran into the problems referenced above. Google has updated their docs to mention the need to link the libz.dylib and the AdSupport.framework.
SOLUTION: I found through trial and error, I also needed to link the libsqlite3.dylib in order to build on the simulator or to a device.
I had to add both
libz.dylib
andAdSupport.framework
to the build phases to make this go away. Google doesn't include these in their instructions so going to check with them to make sure this is OK then will update this post.UPDATE: Now you also need to add
libsqlite3.0.dylib
to get it to work.None of the above solutions worked for me. What did work for me, however, was adding these:
The libGoogleAnalyticsServices.a is a file that can be found in the download for Google Analytics for Mobile Apps iOS SDK v3.
Hope this helps!
Add
libz.dylib
AdSupport.framework
libsqlite3.0.dylib
Google did not update their guide as of 8 Oct 2013.
Google Analytics Guide is here