Configuración de inicio de sesión de código de Android en App Center
Importante
Visual Studio App Center está programado para su retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.
Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.
Sugerencia
Para los usuarios de Xamarin.Android, el proceso es ligeramente diferente. Consulte nuestra guía de firma de código de Xamarin.Android para obtener más información.
Firmar una aplicación es un requisito para ejecutar una aplicación en dispositivos reales durante el proceso de desarrollo o distribuirla a través de un programa beta o en Play Store. Sin firma de código, la aplicación solo se puede ejecutar en un emulador.
Cuando App Center compila una aplicación Android con un tipo de compilación de depuración, no se requiere un almacén de claves para un desarrollador, pero se puede cargar. Estas compilaciones se firmarán automáticamente con una clave de depuración. Para una compilación de versión que se implementará, cargue un almacén de claves en App Center.
Generación de un almacén de claves
Si actualmente no tiene un almacén de claves, puede generar uno en Android Studio. Puede encontrar instrucciones sobre cómo generar un almacén de claves para firmar las API en la Guía oficial del usuario de Android Studio.
Configuración de la firma de código
App Center admite tres formas diferentes de configurar la firma de código para aplicaciones Android. Para los tres métodos, primero debe ir a la configuración de compilación y habilitar la firma de código:
- Vaya a la aplicación en App Center.
- Vaya a Compilar.
- Vaya a la rama que desea configurar eligiendo en la lista.
- Use el menú "Configuración" en la esquina superior derecha o elija Configurar si la rama aún no está configurada para la compilación.
- Habilite Las compilaciones de firma.
- Elija Guardar.
A continuación, en función de su escenario, use la opción más adecuada de las tres opciones de las secciones siguientes. La primera opción implica la comprobación de credenciales en el repositorio, mientras que las otras dos usan App Center para controlar las credenciales en su lugar.
A partir de Android 11, es obligatorio usar el firmante de APK (si usa el nivel de API 30), ya que establecerá algunos esquemas adicionales "Apk Signature Scheme v2 now required". App Center ahora (desde el 17 de dic, 2020) firma aplicaciones Android mediante el firmante de APK internamente, en lugar del firmante JAR que se usó anteriormente. Como parte de la característica para habilitar el inicio de sesión de APK en App Center, se implementó la tarea de firma de Android V3 y los requisitos para la nueva tarea firma eran cambiar cómo se guarda el archivo de almacén de claves: para almacenar el archivo de almacén de claves en un archivo seguro de AzDO (tarea de compilación y versión de firma de Android: Azure Pipelines | Microsoft Docs).
Advertencia
Las configuraciones de compilación que tenían sus archivos de almacén de claves cargados antes del 17 de dic de 2020 siguen usando el método de firma de APK Signature Scheme v2 (jarsigner). Para usar el flujo de firma de APK Signature Scheme v3, los usuarios solo tienen que volver a cargar sus archivos de almacén de claves y guardar su configuración de rama.
Nota:
El uso de la versión 4.1.x del complemento Gradle para Android no es totalmente compatible. Para usar esta versión, debe agregar la siguiente configuración de opción en el gradle.properties
archivo:
android.useNewApkCreator = false
A Almacenar todo en la configuración de Gradle
Puede especificar los detalles de firma en el build.gradle
archivo (nivel de aplicación). Los detalles de firma, junto con todas las credenciales y la información del almacén de claves, estarán visibles en el repositorio. En primer lugar, agregue todos los elementos que necesita al código y compruébalos en el repositorio. A continuación, en la configuración de compilación de App Center, habilitar la configuración de My Gradle se establece completamente para controlar la firma automáticamente.
B. Cargar todo en App Center
Puede cargar el almacén de claves y configurar las credenciales de firma a través de App Center. En este caso, App Center compilará primero la aplicación android y, a continuación, ejecutará un paso de firma después de la compilación correcta.
Nota:
Una compilación solo se puede firmar una vez. Asegúrese de que no tiene conflictos con las configuraciones de firma en la configuración de Gradle para la variante de compilación elegida. Si hay configuraciones de firma tanto en App Center como en el archivo Gradle, la compilación puede terminar firmada dos veces y esto conduce a conflictos.
Configure la configuración de compilación en App Center de la manera siguiente:
- Deshabilitar la configuración de Mi Gradle se establece completamente para controlar la firma automáticamente.
- Cargue el archivo de almacén de claves en la eliminación del archivo de carga de archivos de almacén de claves. Puede arrastrar el archivo al cuadro o hacer clic en él y buscar el archivo. Los archivos de almacén de claves tienen la extensión
.keystore
o.jks
. - Escriba la contraseña del almacén de claves, el alias de clave y la contraseña de clave en los campos correspondientes. Estos valores son los mismos que escribiría en Android Studio al firmar una compilación.
C. Almacenar los detalles de firma en el repositorio con variables de entorno
Use este método si el repositorio ya contiene el almacén de claves, pero no quiere almacenar las credenciales allí. En tiempo de compilación, las credenciales se proporcionarán como propiedades del sistema a la compilación de Gradle. Consulte el ejemplo de código siguiente sobre cómo usarlos:
android {
signingConfigs {
releaseSigningConfig {
storeFile rootProject.file("app/testapp.jks")
storePassword System.getProperty("APPCENTER_KEYSTORE_PASSWORD")
keyAlias System.getProperty("APPCENTER_KEY_ALIAS")
keyPassword System.getProperty("APPCENTER_KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.releaseSigningConfig
}
}
}
En el código anterior, proteger los valores detrás de las propiedades del sistema insertadas en la compilación mantiene seguras las credenciales de firma: los valores se cifran y solo están disponibles para los agentes de compilación en tiempo de compilación. Puede proporcionar los valores a través de App Center. También puede codificar de forma rígida cualquiera de los valores y protegerlos en el repositorio. Para usar App Center para proteger los valores:
- Vaya a la configuración de compilación.
- Asegúrese de que la casilla denominada Configuración de My Gradle está completamente establecida para controlar la firma automáticamente no activada.
- Escriba la contraseña del almacén de claves, el alias de clave y la contraseña de clave en los campos correspondientes. Estos valores son los mismos que escribiría en Android Studio al firmar una compilación.
Si usa sabores de productos, es posible que tenga que ajustar el código anterior para que todas las configuraciones de versión usen la configuración de firma correcta.
Nota:
Si usa la signingConfig
opción dentro de la sección del build.gradle
archivo (nivel de aplicación), es posible que se produzcan errores de firma de código durante la buildTypes
compilación de App Center. Esto es especialmente relevante para las aplicaciones que usan React Native para Android versión 0.60.x y versiones posteriores:
Execution failed for task ':app:validateSigningRelease'.
Keystore file '.../android/app/debug.keystore' not found for signing config 'debug'
Para corregir este problema, debe insertar un almacén de claves adecuado que se usa para firmar en el repositorio y habilitar la configuración de My Gradle se establece completamente para controlar el inicio de sesión automáticamente en la configuración de compilación en el portal de App Center.
En caso de que haya cargado un almacén de claves en la configuración de compilación en el portal de App Center, tenga en cuenta que este enfoque requerirá eliminar la signingConfig
opción de la buildTypes
sección del archivo (nivel de build.gradle
aplicación) si no la actualizó desde el estado predeterminado de la plantilla de proyecto de React Native.