usar - La huella digital de firma que especificó ya está siendo utilizada por otro cliente de Android OAuth2
login huella dactilar android (6)
Hace algún tiempo creé un proyecto de ejemplo (llamémoslo "proyecto de ejemplo") con el Oauth2 client id
para la aplicación de Android en la consola de Google API. También agregué la SHA1 fingerprint
y el nombre del paquete (por ejemplo, com.package.name).
Mi error fue que ya existía una aplicación con el mismo nombre de paquete. Ahora necesito crear una Oauth2 client id
para la aplicación de Android en el "proyecto válido" con el nombre del paquete com.package.name
y con la SHA1 fingerprint
que agregué antes. Obviamente cuando intenté agregar esta huella dactilar recibí un error.
The signing fingerprint you specified is already used by another Android OAuth2 client.
Después de eso recordé sobre "proyecto de ejemplo" y eliminé client id
del client id
de este proyecto. El problema es que todavía no puedo agregar esta huella digital para el nombre del paquete com.package.name
. Client id
se elimina pero todavía tengo el mismo error que el anterior.
Entonces, ¿tengo la posibilidad de usar esta huella digital para el mismo nombre de paquete en otro proyecto?
La huella digital de firma que especificó ya está siendo utilizada por otro cliente de Android OAuth2
Tengo que revisar cada proyecto e intentar encontrar otro ID de cliente configurado con la huella dactilar SHA1 y el nombre del paquete que intenté configurar, sin éxito.
Al final, la solución fue eliminar el ID de cliente que intenté editar y volver a agregar con la huella dactilar SHA1 y el nombre del paquete, funcionó para mí.
Como alguien podría querer usar la misma aplicación a través de dos o más proyectos de base de fuego por muchas razones y, por lo tanto, recibo este error. Aquí abordo este escenario en particular. La forma más sencilla de ejecutar la misma aplicación en dos o más proyectos de base de fuego diferentes (digamos, producción y organización) es agregar a su nivel de Módulo build.gradle
file una variante de construcción (digamos que la build.gradle
) como esta:
apply plugin: ''com.android.application''
apply plugin: ''com.google.firebase.firebase-perf''
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.mydomain.myapp"
minSdkVersion 19
targetSdkVersion 27
versionCode 18
versionName "2.8"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
staging {
initWith debug
applicationIdSuffix ".staging"
versionNameSuffix = "-staging"
}
}
}
dependencies {
[...]
}
// Firebase
apply plugin: ''com.google.gms.google-services''
En la variante de compilación, lo que es más importante es la línea:
applicationIdSuffix ".staging"
Esto inyectará en el momento de la compilación un sufijo ".staging" en su ID de aplicación para que usted tenga automáticamente
applicationId "com.mydomain.myapp.staging"
Es necesario que agregue esta aplicación ( "com.mydomain.myapp.staging"
) a su proyecto de preparación de firebase y así podrá agregar el mismo SHA1 "com.mydomain.myapp"
a esta aplicación, ya que tiene una ID de aplicación.
Este error se produce cuando existe un SIGNING CERTIFICATE FINGERPRINT (SHA1)
en Google Developers vinculado a una cuenta diferente.
La solución es eliminar el proyecto que utiliza ese SHA1
en console.developers.google.com
para el proyecto anterior / incorrecto.
No puede cambiar la huella dactilar SHA1 una vez establecida. Recuerde que eliminar el proyecto tarda 7 días en eliminarlo por completo.
Otra opción es eliminar el debug.keystore
y generar uno nuevo con:
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey
-storepass android -keypass android -keyalg RSA -validity 14000
Recuerde que debe desinstalar la aplicación, de lo contrario, [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
error [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
.
Me encontré con este tema hoy. Como el proyecto tarda mucho tiempo en eliminarse por completo, la forma más sencilla es crear un nuevo SHA1 simplemente eliminando el debug.keystore local. Se genera automáticamente cuando ejecuta cualquier aplicación después de eliminarla. Esto está documentado en la documentación de Android here .
Notaré que esto si su aplicación está en la lista de Play Store, probablemente no quiera cambiar el nombre del paquete y probablemente no quiera reemplazar la clave de producción (ya que se verá obligado a hacer un nuevo listado).
Si está absolutamente seguro de que actualmente no hay proyectos activos que utilicen el par de nombre de paquete / huella digital actual, una última cosa que debe probar: crear una credencial completamente nueva. Tendrá que reemplazar su archivo de credenciales en la aplicación.
No esperaba que esto ayude, pero lo hizo. Tal vez Google es de alguna manera el almacenamiento en la caché "Esta búsqueda de nombre de paquete / huella digital / ID de cliente es un duplicado, así que no te molestes en buscarlo de nuevo".
Si está utilizando cada proyecto de base de fuego para cada env como soy, el siguiente enfoque podría ser útil.
En su estructura de compilación, cree una nueva ID de aplicación para cada env:
productFlavors {
dev {
applicationId "se.abc.dev"
}
stag {
applicationId "se.abc.stag"
}
prod
}
En cada proyecto de base de fuego, agregue un nuevo proyecto con el ID de aplicación correspondiente con la misma huella digital. Recuerde descargar el nuevo archivo json de google service desde que se cambió la ID de la aplicación. El nombre del paquete sigue siendo el mismo, por lo que no sería un problema al cargar en Google Play. Pero seguro, dejo el sabor de prod vacío, por lo que el nombre del paquete y la identificación de la aplicación serán los mismos para la liberación de prod para evitar problemas.