cordova-plugin-googleplus
cordova-plugin-googleplus copied to clipboard
Build error on IOS - Conflict with cordova-firebase-plugin
After upgrading cordova-firebase-plugin to the latest version (2.0.5), my app don't build anymore on IOS : `Undefined symbols for architecture arm64: "_GULLoggerInitializeASL", referenced from: ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "_GULLoggerEnableSTDERR", referenced from: ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "OBJC_CLASS$_GULSwizzler", referenced from: objc-class-ref in GoogleAppMeasurement(UIViewController+APMScreenClassName_bb34840e14481f32c5ecb9ffcac15bff.o) objc-class-ref in FirebasePerformance(FPRSelectorInstrumentor_43661c322536eae9342dbd4edb53bf7b.o) objc-class-ref in FirebasePerformance(FPRProxyObjectHelper_cae8c79ce5179c4587d285c87421f26f.o) "_GULLogInfo", referenced from: ___44+[UIViewController(APMScreenClassName) load]_block_invoke in GoogleAppMeasurement(UIViewController+APMScreenClassName_bb34840e14481f32c5ecb9ffcac15bff.o) "_GULLoggerForceDebug", referenced from: ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "_kGULNetworkHTTPStatusCodeNotModified", referenced from: -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_kGULNetworkHTTPStatusCodeNotFound", referenced from: -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_kGULNetworkHTTPStatusCodeCannotAcceptTraffic", referenced from: -[APMMeasurement networkUploadCompletionHandlerWithResponse:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_GULLogWarning", referenced from: -[APMUserDefaults objectForKey:] in GoogleAppMeasurement(APMUserDefaults_cec267d1ff21df5a0ffda1a71af1431f.o) -[APMUserDefaults setObject:forKey:] in GoogleAppMeasurement(APMUserDefaults_cec267d1ff21df5a0ffda1a71af1431f.o) -[APMUserDefaults synchronize] in GoogleAppMeasurement(APMUserDefaults_cec267d1ff21df5a0ffda1a71af1431f.o) +[APMMeasurement sharedInstance] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) ___44+[UIViewController(APMScreenClassName) load]_block_invoke in GoogleAppMeasurement(UIViewController+APMScreenClassName_bb34840e14481f32c5ecb9ffcac15bff.o) "_kGULNetworkHTTPStatusNoContent", referenced from: -[APMMeasurement networkUploadCompletionHandlerWithResponse:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_GULLoggerRegisterVersion", referenced from: ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "_kGULNetworkHTTPStatusCodeUnavailable", referenced from: -[APMMeasurement networkUploadCompletionHandlerWithResponse:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_kGULNetworkHTTPStatusOK", referenced from: -[APMMeasurement networkUploadCompletionHandlerWithResponse:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) -[APMMeasurement networkRemoteConfigFetchCompletionHandler:data:error:] in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "_GULLogBasic", referenced from: -[APMASLLogger logMessage:logTag:messageCode:withLogLevel:] in GoogleAppMeasurement(APMASLLogger_b06c35e24aea4d3ad666632e11e79ef6.o) _FIRLogBasic in FirebaseCore(FIRLogger.o) "OBJC_CLASS$_GULObjectSwizzler", referenced from: objc-class-ref in FirebasePerformance(FPRObjectInstrumentor_e851288d6b6849d0b0294fa10cb31cfe.o) objc-class-ref in FirebasePerformance(FPRNetworkTrace_f6900b74cf65074de701b7de7866f471.o) objc-class-ref in FirebasePerformance(FPRNSURLConnectionInstrument_e1f5d400ad96be0ff646f570493cefd7.o) "OBJC_CLASS$_GULAppEnvironmentUtil", referenced from: objc-class-ref in FirebaseInstanceID(FIRMessagingLog_831659faf16f8906538fbfc3d5822ecc.o) objc-class-ref in FirebaseCoreDiagnostics(FIRDiagnostics_afb9975b7573ce8caa0e4380e6bfbe31.o) objc-class-ref in FirebaseAuth(FIRAuth.o) objc-class-ref in FirebaseAuth(FIRAuthAPNSTokenManager.o) objc-class-ref in FirebaseAuth(FIRAuthAppDelegateProxy.o) objc-class-ref in FirebaseAuth(FIRAuthDefaultUIDelegate.o) objc-class-ref in FirebaseRemoteConfig(RCNConfigSettings_32ebbc1ad7e48275f60b4ddc4a3b6e39.o) ... "OBJC_CLASS$_GULMutableDictionary", referenced from: objc-class-ref in GoogleAppMeasurement(APMRemoteConfig_a87cea1e5d19294f87a4448795cd24c6.o) objc-class-ref in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) "OBJC_CLASS$_GULNetwork", referenced from: objc-class-ref in GoogleAppMeasurement(APMAnalytics_f5f2b01aed09e7d23917a3e8a400242e.o) objc-class-ref in GoogleAppMeasurement(APMMeasurement_a76ff61c6b4ca85ef91462a646f323a0.o) objc-class-ref in GoogleAppMeasurement(APMAppDelegateInterceptor_d25c2dc381ddbd5008199366846aae05.o) objc-class-ref in FirebaseCoreDiagnostics(FIRClearcutLogger_45763904baa6658ff86b47cac2ab23e7.o) "_GULIsLoggableLevel", referenced from: -[APMMonitor isLoggableLevel:] in GoogleAppMeasurement(APMMonitor_405c5a637e87914c89c37652996d219d.o) "_GULLogError", referenced from: +[APMAnalytics startWithAppID:origin:options:] in GoogleAppMeasurement(APMAnalytics_f5f2b01aed09e7d23917a3e8a400242e.o) -[APMUserDefaults synchronize] in GoogleAppMeasurement(APMUserDefaults_cec267d1ff21df5a0ffda1a71af1431f.o) "_GULSetLoggerLevel", referenced from: -[APMMonitor setDebugModeEnabled:] in GoogleAppMeasurement(APMMonitor_405c5a637e87914c89c37652996d219d.o) _FIRSetLoggerLevel in FirebaseCore(FIRLogger.o) "OBJC_CLASS$_GULReachabilityChecker", referenced from: objc-class-ref in FirebaseMessaging(FIRMessaging.o) "OBJC_CLASS$_GULAppDelegateSwizzler", referenced from: objc-class-ref in GoogleAppMeasurement(APMAnalytics_f5f2b01aed09e7d23917a3e8a400242e.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **`
There is an open issue on the cordova-firebase-plugin repo : https://github.com/arnesson/cordova-plugin-firebase/issues/949
I need both of those plugins, is there anyone who succeeded resolving this conflict ?
not sure if it helps, I was using cordova-plugin-firebase-authentication library in addition to the same 2 you were using. I removed the 'cordova-plugin-firebase-authentication' and I am up and running.
I got exact same problem when use with cordova-firebase plugin. please help
@dpa99c thank you for pointing the right direction. I tried this fork https://github.com/EddyVerbruggen/cordova-plugin-googleplus/pull/586 by @guylando. He has upgraded the google utilities to v6.2 . I tried but it didn't work. I get the same error when click on google signin. I understand that the fork won't resolve the conflicting Google Utilities version issue. How do I go about solving the clash issue between firebase and googleplus as you described in https://github.com/dpa99c/cordova-plugin-firebase/issues/31
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryI gtm_httpArgumentsString]: unrecognized selector sent to instance 0x280333800'
PR #586 still bundles the Google libraries as a static bundle inside the plugin repo so it will still conflict with cordova-plugin-firebasex which uses Cocopods to satisfy its dependencies. To resolve the problem, this plugin must be updated to also use Cocopods for dependency resolution so there is a single canonical source (in the same way Gradle is used to satisfy Android build dependencies rather than bundling libraries as static JAR files).
@dpa99c is there a workaround for now ? basically you would always need firebase to send notifications and google sign in is needed in most apps. I am pretty sure most people will find the solution helpful. I will be happy to dig into it but being a IOS / Android novice not sure where to start.
Fork this plugin and use replace the static frameworks with the equivalent podspecs
Resolved by adding cordova-plugin-firebase on IOS instead of cordova-plugin-firebasex for Android cordova-plugin-firebasex works great with googleplus plugin Steps
- ionic cordova platform remove ios
- ionic cordova plugin remove cordova-plugin-googleplus
- ionic cordova plugin remove cordova-plugin-firebasex
- ionic cordova plugin remove cordova-plugin-androidx-adapter
- ionic cordova plugin add https://github.com/vash15/cordova-plugin-firebase.git#master
- ionic cordova plugin add cordova-plugin-cocoapod-support
- ionic cordova plugin add cordova-plugin-googleplus --save --variable REVERSED_CLIENT_ID=myreversedclientid
- Add the following to the config.xml
<platform name="ios">
<preference name="pods_ios_min_version" value="9.0" />
<preference name="pods_use_frameworks" value="true" />
<pod name="Firebase/Core" version="5.20.0" />
<pod name="Firebase/Auth" version="5.20.0" />
<pod name="Firebase/Messaging" version="5.20.0" />
<pod name="Firebase/Performance" version="5.20.0" />
<pod name="Firebase/RemoteConfig" version="5.20.0" />
<pod name="Firebase/DynamicLinks" version="5.20.0" />
<pod name="Fabric" version="1.9.0" />
<pod name="Crashlytics" version="3.12.0" />
<pod name="GoogleSignIn" version="4.4.0" />
</platform>
I provided a PR to use Cocoapods for Google dependencies: https://github.com/EddyVerbruggen/cordova-plugin-googleplus/pull/615
Till the PR is merged, you could install it like the following:
cordova plugin add https://github.com/peterpeterparker/cordova-plugin-googleplus#cocoapods ...
PR https://github.com/EddyVerbruggen/cordova-plugin-googleplus/pull/615 has been merged (to fetch dependencies from cocoapods) and @EddyVerbruggen has released a new version of the plugin v8.0.0
Therefore, except if someone is still facing the above error after updating the plugin, I think this issue could be closed
@peterpeterparker worked for me .Thanks. Issue can be closed
I am having this issue with cordova-plugin-fcm. can someone help?
Undefined symbols for architecture x86_64: "OBJC_CLASS$_GSDK_GTMLogger", referenced from: objc-class-ref in GoogleIPhoneUtilities(GIPReachability.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
@yashpatelyk did you every find a resolution to this with codova-plugin-fcm?
@amit777 yes I got the solution. See, https://stackoverflow.com/a/57765904/3855048
@yashpatelyk Will google plus login work fine after downgrading the version as given in the link?
For all who are facing issue with fcm plugin, I have switched to cordova-plugin-firebase-messaging and they are now working fine codova-plugin-fcm is quite old and the repo is no longer maintained. It is better to switch to a more recent plugin.
problem persists on cordova 9, ionic 3, cordova-ios 5.1.1 and "cordova-plugin-firebasex": "7.0.2". I removed the googleplus plugin until fixing this issue. Is there any alternative for google sign in? Or any plugin like gradle-version-plugin?