I have an issue with the iOS version where the Google login just crashes and closes the app and the Firebase Authentication does nothing, however this works perfectly fine on the Android version, so the issue is specific to iOS.
I am using (cordova-plugin-googleplus) for the google login and (cordova-plugin-firebase-authentication) for the Firebase Authentication.
The only error I am getting is from the Google login:
-[__NSDictionaryI gtm_httpArgumentsString]: unrecognized selector sent to instance 0x600002f2c340
Items we have tried in order to resolve this problem:
- updated both plugins
- checked that the info.plist file is all in order
- The “REVERSED_CLIENT_ID” and “WEB_APPLICATION_CLIENT_ID” is added to the cordova-plugin-googleplus plugin
- CocoaPods is all updated
- Clean out XCode
- Remove and re added IOS platform
- IOS Certificate is up to date
ionic info
Ionic:
Ionic CLI : 5.4.1 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.9.1
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.3.9
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.5.1
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : ios 5.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.2, (and 16 other plugins)
Utility:
cordova-res : 0.6.0
native-run : 0.2.8
System:
ios-deploy : 1.9.4
ios-sim : 8.0.2
NodeJS : v10.16.0 (/usr/local/bin/node)
npm : 6.11.3
OS : macOS Mojave
Xcode : Xcode 10.3 Build version 10G8
> cordova plugin ls
cordova-plugin-advanced-http 2.1.1 "Advanced HTTP plugin"
cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.0 "cordova-plugin-androidx-adapter"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-firebase-authentication 3.0.0 "cordova-plugin-firebase-authentication"
cordova-plugin-firebasex 6.1.0 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.2 "Geolocation"
cordova-plugin-googleplus 7.0.2 "Google SignIn"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.2 "cordova-plugin-ionic-webview"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-x-socialsharing 5.6.0 "SocialSharing"
es6-promise-plugin 4.2.2 "Promise"
phonegap-plugin-barcodescanner 8.1.0 "BarcodeScanner"
config.xml
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="orientation" value="portrait" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="500" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="9000" />
<preference name="FadeSplashScreen" value="true" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="AllowInlineMediaPlayback" value="true" />
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
<allow-intent href="market:*" />
<icon density="ldpi" src="resources\android\icon\drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources\android\icon\drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources\android\icon\drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources\android\icon\drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources\android\icon\drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources\android\icon\drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="resources\android\splash\drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources\android\splash\drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources\android\splash\drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources\android\splash\drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources\android\splash\drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources\android\splash\drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources\android\splash\drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources\android\splash\drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources\android\splash\drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources\android\splash\drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources\android\splash\drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources\android\splash\drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<allow-navigation href="about:*" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>We make use of the camera to allow a user take a photo for their profile picture. We also use the camera for barcode scanning.</string>
</config-file>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>We require geo-location data from the user, to show them which Reverse Vending Machines are closest to them, allowing the user to find them quickly, in order to recycle. The app makes use of the cordova-plugin-geolocation plugin.</string>
</edit-config>
<icon height="57" src="resources\ios\icon\icon.png" width="57" />
<icon height="114" src="resources\ios\icon\icon@2x.png" width="114" />
<icon height="40" src="resources\ios\icon\icon-40.png" width="40" />
<icon height="80" src="resources\ios\icon\icon-40@2x.png" width="80" />
<icon height="120" src="resources\ios\icon\icon-40@3x.png" width="120" />
<icon height="50" src="resources\ios\icon\icon-50.png" width="50" />
<icon height="100" src="resources\ios\icon\icon-50@2x.png" width="100" />
<icon height="60" src="resources\ios\icon\icon-60.png" width="60" />
<icon height="120" src="resources\ios\icon\icon-60@2x.png" width="120" />
<icon height="180" src="resources\ios\icon\icon-60@3x.png" width="180" />
<icon height="72" src="resources\ios\icon\icon-72.png" width="72" />
<icon height="144" src="resources\ios\icon\icon-72@2x.png" width="144" />
<icon height="76" src="resources\ios\icon\icon-76.png" width="76" />
<icon height="152" src="resources\ios\icon\icon-76@2x.png" width="152" />
<icon height="167" src="resources\ios\icon\icon-83.5@2x.png" width="167" />
<icon height="29" src="resources\ios\icon\icon-small.png" width="29" />
<icon height="58" src="resources\ios\icon\icon-small@2x.png" width="58" />
<icon height="87" src="resources\ios\icon\icon-small@3x.png" width="87" />
<icon height="1024" src="resources\ios\icon\icon-1024.png" width="1024" />
<splash height="1136" src="resources\ios\splash\Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources\ios\splash\Default-667h.png" width="750" />
<splash height="2208" src="resources\ios\splash\Default-736h.png" width="1242" />
<splash height="1242" src="resources\ios\splash\Default-Landscape-736h.png" width="2208" />
<splash height="1536" src="resources\ios\splash\Default-Landscape@2x~ipad.png" width="2048" />
<splash height="2048" src="resources\ios\splash\Default-Landscape@~ipadpro.png" width="2732" />
<splash height="768" src="resources\ios\splash\Default-Landscape~ipad.png" width="1024" />
<splash height="2048" src="resources\ios\splash\Default-Portrait@2x~ipad.png" width="1536" />
<splash height="2732" src="resources\ios\splash\Default-Portrait@~ipadpro.png" width="2048" />
<splash height="1024" src="resources\ios\splash\Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources\ios\splash\Default@2x~iphone.png" width="640" />
<splash height="480" src="resources\ios\splash\Default~iphone.png" width="320" />
<splash height="2732" src="resources\ios\splash\Default@2x~universal~anyany.png" width="2732" />
</platform>
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^4.0.0" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
If you have any help/pointers or tips, please can you assist.
Thank you in advance.