Categorías
Cloud Dev Firebase Flutter

Cómo consultar el listado de firmas de una app (gradlew signinReport) y habilitar Google Sign In en una instalación directa con Flutter


Este post resuelve el bug Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) que ocurre al testear a la autenticación en local. En caso de que el comando ./gradlew signingReport no funcione, es muy probable que su error esté relacionado con este problema https://stackoverflow.com/questions/61289461/java-lang-noclassdeffounderror-could-not-initialize-class-org-codehaus-groovy-v

En pocas palabras, para resolver el bug, basta con ir al archivo android\gradle\wrapper\gradle-wrapper.properties y reemplazar la línea:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

Por:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

También es posible que sea mejor correr el comando directamente en gitbash, para evitar esos formatos extraños que a veces genera cuando se usa en vscode.


Ahora sí, este es el post:

Normalmente es suficiente con agregar las firmas de firebase y de google play a la app para poder que funcione. Pero en el caso de las instalaciones directas (un archivo apk), es necesario agregar la firma de release de la app a firebase. El proceso es el siguiente:

Primero tenemos que consultar el listado de firmas o gradlew signinReport (por si alguna vez se había preguntado para que era ese tal archivo gradlew). Para esto hay dos opciones:

  • Buscar el archivo gradlew, normalmente ubicado en un-proyecto/android/gradlew, y Hacer clic derecho encima y seleccionar la opción Abrir en la Consola (Open in Terminal).
  • Navegar en la consola hasta la carpeta android.

A continuación ejecutar el siguiente comando:

./gradlew signingReport

Esto mostrará un largo reporte con todas las firmas y sobretodo con las claves SHA1, que se necesitarán.

La clave requerida en este caso es la que está marcada como release:

...
Variant: release
Config: release
Store: C:\Su Madre\Su App\android\app\key.jks
Alias: key
MD5: E6:...
SHA1: A9:...
....

Esta opción les permitirá agregar la clave a firebase o donde quiera que la necesiten… incluso en una petición a la santísima virgen, si no les funciona.

No olviden descargar y actualizar el archivo google-services.json después de esto. Eso es todo.

Deja una respuesta