expo-google-app-auth does not work on devices, only on emulator

I am trying to implement login through google and facebook in the app I’m working on, as far as the android studio emulator goes, it is working perfectly, login in on both facebook and google, however, once I built an apk and tried to run on mine and a co-worker’s android phone, google’s sign in wouldn’t work (though facebook’s still does).

I am not sure what to do, because it seems to be working perfectly as long as its not on a phone, has anyone had a similar problem? Maybe it’s a problem with the libvrary itself, but I hardly seem to find anyone using it.

Edit: The expo-google-app-auth was returning a problem “File ‘expo-module-scripts/tsconfig.base’ not found.”. I am trying to fix it now, may be that.

Btw, here’s the method of access

signInWithGoogle = async (callback) => {
    try {
      let created = new Date();

      const result = await Google.logInAsync({
        androidClientId: this.googleAuthAndroid,
        scopes: ['profile', 'email'],
      });
  
      if (result.type === 'success') {
        let logInValues = {
          email: result.user.email,
          familyName: result.user.familyName,
          givenName: result.user.givenName,
          id: result.user.id,
          photoUrl: result.user.photoUrl,
          accessToken: result.accessToken,
          idToken: result.idToken,
          refreshToken: result.refreshToken,
          created: created.getFullYear() + "-" + (created.getMonth() + 1) + "-" + created.getDate() + " " + 
          created.getHours() + ":" + created.getMinutes()  + ":" + created.getSeconds(),    
        }
        
        fetch('http://' + this.cdm.getHost() + '/login/logInWithGoogle.php', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify(logInValues)
        })
         .then(response => response.json())
         .then(responseJson => {      
           console.log(responseJson);
           callback(responseJson);
         });
        
        return result.accessToken;
      } else {
        return { cancelled: true };
      }
    } catch (e) {
      console.log(e);
      return { error: true };      
    }
  }

I have exactly same problem, any solutions ?
Unfortunately it’s very difficult to debug such problems, AWS Device Farm does not seems to be able to run expo builds. Now pretty stuck here…

It works on expo client/simulators for both Google/Facebook.
Facebook auth also works on standalone, but not Google.
React Native expo/managed. My code (i do use AWS services then with Cognito identity pool with open connect id):

const GoogleConfig = {
    androidClientId: 'xxx',
    iosClientId: 'yyy',
    iosStandaloneAppClientId: 'zzz',
    androidStandaloneAppClientId: 'vvv',
    behavior: 'web',
    webClientId: 'xxx',
    scopes: ['profile', 'email']
  };

const { type, idToken, accessToken, user } = await Google.logInAsync(GoogleConfig);
    setAuthName(user.givenName);
    setAuthSurName(user.familyName);
    setAuthEmail(user.email);
    setAuthProvider("Google");
    if (type === 'success') {
 try {
        AWS.config.region = 'eu-central-1';
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: awsmobile.aws_cognito_identity_pool_id,
          Logins: {
            'accounts.google.com': idToken
          }
        })
        // Obtain AWS credentials
        AWS.config.getCredentials(function (err) {
          if (err) console.log(err.stack); // credentials not loaded
          else {
            console.log("Google auth AWS Access Key:", AWS.config.credentials.accessKeyId);
.....<removed for clarify>
   }

Any recommendations ?

Similar problem undefined is not an object (evaluating 'clientId.split') : [iOS] Error in LogInAsync function · Issue #5998 · expo/expo · GitHub
Anybody at expo looking at this ?

I managed to make the the google login page popup by adding an androidStandaloneAppClientId option in the logInAsync method, but it still has an error returning, this time saying redirect_uri_mismatch.

1 Like

Have same issue =(((( i can’t find how to solve proplem =(((

I was missing androidStandaloneAppClientId in logInAsync method. After I added it my app was working fine.

Found any solution for this?

Any solution for this?