@lrx If identified the problem: We used the wrong dependencies for Firebase Analytics. I’ve released a new version. Please test this version together with AdMob.
Yes, happy to hear that it is working! The time spent adding gradle is definitely worth it. We may still run into extensions with conflicting dependencies, but all other cases should now be handled smoothly.
Maybe. With the basic gradle support we have in 1.2.165 we solve most of the problems we have had in the past with transitive dependencies. I’m confident that this will make Android extension development a whole lot easier. If we still run into problems we may need to look into some of the things you suggested.
I’m using Firebase Analytics in my project and it works on iOS and Android.
After also adding the Admob extension, I get a build error when exporting to iOS. Exporting to Android works fine.
I created a test app with only the Admob and Firebase extensions in, which produces the same error when both extensions are included:
Undefined symbols for architecture armv7:
"_kAPMSafelistedEventsOptionKey", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
"_kAPMMonitorLogTagOptionKey", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
"_kAPMAnalyticsConfiguration", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
"_kAPMIsAnalyticsCollectionDeactivated", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
"_kAPMAppMeasurementOriginFirebase", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
"_kAPMIsAnalyticsCollectionEnabled", referenced from:
+[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_1423240b22a8d04880a5570a49fcf86d.o)
ld: symbol(s) not found for architecture armv7
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
/admob/src/extension.cpp
Line 36: enumeration values 'EVENT_ID_ICONIFYAPP' and 'EVENT_ID_DEICONIFYAPP' not handled in switch [-Wswitch]
switch (event->m_Event) {
^
/firebase/src/firebase.cpp
Line 3: 'DLIB_LOG_DOMAIN' macro redefined [-Wmacro-redefined]
#define DLIB_LOG_DOMAIN LIB_NAME
^
Line 3: previous definition is here
#define DLIB_LOG_DOMAIN "FIREBASE"
^
Line 36: extra tokens at end of #else directive [-Wextra-tokens]
#else if defined(DM_PLATFORM_IOS)
^
//
Line 165: format string is not a string literal (potentially insecure) [-Wformat-security]
luaL_error(L, msg);
^~~
Line 165: treat the string as an argument to avoid this
luaL_error(L, msg);
^
"%s",
Line 185: format string is not a string literal (potentially insecure) [-Wformat-security]
luaL_error(L, msg);
^~~
Line 185: treat the string as an argument to avoid this
luaL_error(L, msg);
^
"%s",
It builds fine with only the Firebase extension OR only the Admob extension.
Until we have a cocoapod dependency systems, we will have to resolve dependency conflicts by hand. You have to download either extension and delete a duplicate GoogleAppMeasurement.framework or any other conflicting framework.