Troubleshooting
webClientId is "autoDetect" but default_web_client_id was not found (Android)
- Add
google-services.jsontoandroid/app/ - Apply Google Services Gradle plugin (Android setup)
- Ensure JSON
package_namematches yourapplicationId - On Expo: set
expo.android.googleServicesFileand re-runprebuild --clean
Android default_web_client_id was not found
You use webClientId: 'autoDetect' but Gradle did not generate the string resource:
- Add
google-services.jsonunderandroid/app/with matchingpackage_name. - Add Google Services Gradle plugin (root
classpath+ appapply plugin). - Rebuild the app (not just reload Metro).
Or pass an explicit Web client ID instead of 'autoDetect'.
iOS sign-in stuck after browser / OAuth redirect
Interactive sign-in opens a browser or account sheet, then should return to your app. If it hangs:
- Confirm URL scheme =
REVERSED_CLIENT_IDfrom plist (iOS setup). - On bare React Native, add
GIDSignIn.sharedInstance.handle(url)inAppDelegate(details). - If you use Facebook or other
openURLhandlers, chain them with||before/after Google's handler.
iOS URL scheme / redirect errors
- Add
REVERSED_CLIENT_IDas a URL scheme in Info.plist - Expo: include
GoogleService-Info.plistoriosUrlSchemein the plugin - Re-run prebuild after changing plist
Release builds / R8 / ProGuard
Sign-in works in debug but crashes or no-ops in release after enabling minifyEnabled true:
- Consumer rules —
react-native-nitro-google-signinshipsconsumer-rules.prowith the AAR. Upgrade the package instead of copying keeps manually (Android setup — ProGuard / R8). - Do not add blanket
-keep class androidx.** { *; }for Credential Manager —androidx.credentialsandcredentials-play-services-authalready embed the rules they need. - Peer — install and rebuild with
react-native-nitro-modules(Nitro JNI). - Verify — reproduce on
assembleReleaseor your store build, then inspect logcat forClassNotFoundException/ missingHybridNitroGoogleSignin.
DEVELOPER_ERROR / sign-in fails immediately (Android)
- Wrong SHA-1 (or missing SHA-256 in Firebase) on the Android OAuth client
- Package name mismatch
- Android OAuth client ID passed to
configure()instead of the Web client ID — Credential ManagersetServerClientIdmust use the Web client (*.apps.googleusercontent.com) - Web client ID from a different Google Cloud project than the Android client
See Android — Credential Manager checklist.
Nitro / TurboModule not found
- Rebuild native app after installing the package
- Expo: create a new dev client (
expo prebuild --clean+expo run:ios|android) - Confirm
react-native-nitro-modulesis installed
Expo config plugin errors
Missing iosUrlScheme:
Configure either Firebase files or manual scheme:
["react-native-nitro-google-signin", { "iosUrlScheme": "com.googleusercontent.apps...." }]
Play Services (Android)
Call checkPlayServices() and use an emulator image with Google Play.
Platform-specific behavior
Platform differences for signOut(), revokeAccess(), and scope requests are documented in Usage and the API reference.
Still stuck?
Open an issue with platform, RN version, Expo vs bare, and whether you use autoDetect or an explicit webClientId: