GoogleSignIn.signInAsync() crashes with SIGABRT on iOS

As the title suggests, I’m having issues utilizing the expo-google-sign-in module in an ejected Expo application. Some baseline information about my environment:

  • Affected platform(s): iOS (simulator running 12.1)
  • Expo SDK version: 32.0.0
  • Ejected from SDK version: 32.0.0
  • Expokit version from Podfile: ios/2.10.2
  • Relevant pod declaration:
    pod 'EXGoogleSignIn',
        :path => "../node_modules/expo-google-sign-in/ios"
  • Reverse client ID supplied to URLSchemes: Yes (validated both in XCode and via expo-app-auth) (reference)
  • Reverse client ID supplied to GoogleSignIn.initAsync: Yes (reference)

Expected Behavior:
User is prompted with either native (works on Android) or web based Google sign-in prompt, provides credentials, which is then passed onto react-native-firebase for authentication.

Actual Behavior:
Application freezes, then crashes.

When running with debugger on in XCode, see the following SIGABRT on primary thread:

(not my screenshot, but the exact same file, line, and error applies to my issue; source:

XCode reports the following log statements:

libc++abi.dylib: terminating with uncaught exception of type NSException

Example Code: Imports

import Sentry from 'sentry-expo';
import { GoogleSignIn, } from 'expo';
import firebase from 'react-native-firebase';

const GoogleServices = require('./../../../conf.d/GoogleService-Info.json');

Example Code: Initializing Google Sign-In

try {
    await GoogleSignIn.initAsync({
        clientId: GoogleServices.REVERSED_CLIENT_ID,
} catch ({ message }) {
    alert('Error requesting Google authentication services: ' + message);

Example Code: Requesting signInAsync

try {
    // Necessary for Android. Returns true always on iOS.
    await GoogleSignIn.askForPlayServicesAsync();
    try {
        const { type, user } = await GoogleSignIn.signInAsync();
        if (type === 'success') {
            return user;
        } else {
            return false;

Troubleshooting Steps Taken so Far

  • Validated proper reversed clientId is available throughout the application
  • Tried importing directly from expo-google-sign-in
    • Reference, unlinked as I’m new to the forums and have hit the limit of links
  • Cleared transformer cache, cleared build cache, cleared and re-installed node_modules

I’m really hoping I won’t have to revert to Expo SDK 31, as we are utilizing several of the features and fixes applied in 32. Any assistance or guidance here is appreciated.


This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.