Manish
Manish

Reputation: 146

iOS AdMob Analytics integration issue with Firebase

I have an existing Carthage project which uses AWS and it's written in Swift. I have integrated Google SignIn (v4.0.1) in it and it works. I recently added AdMob also (via manual SDK install) and I am able to see the Ads. Now the AdMob console suggested adding Firebase Analytics and I was trying that. I downloaded the Firebase SDK and followed the steps in the Readme : - Copied the Firebase Analytics frameworks in my project (Did not "embed") - Added -ObjC flag - Copied Firebase.h - Copied module.map and updated header search path

When I build the project I get 26 errors relating to duplicate symbols between GoogleSignInDependencies.framework (added via Google SignIn) and GoogleToolboxForMac.framework (via Firebase).. All of them are related to GTMLogger.

I searched forums and saw this could be resolved if using Cocoapods.. But that's not possible in my case. Is there any other way to fix this ? Or should I use Google Analytics instead of Firebase?

regards, Manish

Here's the error message:


duplicate symbol _OBJC_CLASS_$_GTMLogStandardFormatter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogStandardFormatter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogBasicFormatter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogBasicFormatter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogNoFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogNoFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogMininumLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogMininumLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogMaximumLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogMaximumLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogAllowedLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogAllowedLevelFilter in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_CLASS_$_GTMLogger in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_METACLASS_$_GTMLogger in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogLevelFilter.userDefaults_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogAllowedLevelFilter.allowedLevels_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogger.formatter_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogStandardFormatter.dateFormatter_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogger.filter_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogger.writer_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogStandardFormatter.pname_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogStandardFormatter.pid_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _OBJC_IVAR_$_GTMLogLevelFilter.verboseLoggingEnabled_ in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_1d87861920ce748f18c427633f13fd22.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
duplicate symbol _GTMNSDictionaryURLArgumentsExportToSuppressLibToolWarning in:
    ----/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMNSDictionary+URLArguments_cd571689d060290c6282e8a67c43d536.o)
    ----/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMNSDictionary+URLArguments_7a10c227900104c35b53fbebbbcb25cb.o)
ld: 26 duplicate symbols for architecture x86_64  


Option 2 : Using "force load" flag

Here's the stacktrace if I add "force load" option:



Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSBundle gid_frameworkBundle]: unrecognized selector sent to class 0x10dc5e220'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010f2e6d4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010de0021e objc_exception_throw + 48
    2   CoreFoundation                      0x000000010f356e44 +[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x000000010f26c005 ___forwarding___ + 1013
    4   CoreFoundation                      0x000000010f26bb88 _CF_forwarding_prep_0 + 120
    5   StockTracker                        0x000000010c54adac +[GIDSignInStrings localizedStringForKey:text:] + 69
    6   StockTracker                        0x000000010c549c2e -[GIDSignInButton buttonText] + 68
    7   StockTracker                        0x000000010c548db6 -[GIDSignInButton minWidth] + 74
    8   StockTracker                        0x000000010c5490a6 -[GIDSignInButton sizeThatFits:] + 52
    9   StockTracker                        0x000000010c548b5b -[GIDSignInButton setFrame:] + 37
    10  UIKit                               0x0000000110ff4abd UIViewCommonInitWithFrame + 1395
    11  UIKit                               0x0000000110ff4dc6 -[UIView initWithCoder:] + 471
    12  UIKit                               0x00000001110e6fe2 -[UIControl initWithCoder:] + 66
    13  StockTracker                        0x000000010c548652 -[GIDSignInButton initWithCoder:] + 64

Upvotes: 0

Views: 414

Answers (1)

Vyacheslav
Vyacheslav

Reputation: 27211

use -force_load flag for each framework you use. I faced the same issue 3 monthes ago.

Upvotes: 0

Related Questions