Sinatura do código para Android
Neste artigo, aprenderá como codificar para Android (APK). Debes asinar a túa aplicación en Android se seleccionaches Android como unha das plataformas mentres creas e creas o teu proxecto de envoltura.
Importante
Se quere asinar unha aplicación AAB para a distribución en Google Play, consulte Asinar a súa aplicación.
Prepare o seu PC
Necesitas a seguinte información para comezar:
- Instalar Android Studio
- Instalar OpenSSL
Xerar claves
Nota
Salta a asinar o paquete APK se xa xeraches claves e hash de sinatura ao crear o rexistro da aplicación.
Usaremos keytool.exe (dispoñible despois da instalación de Android Studio, desde a localización do cartafol "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") para crear un certificado para asinar o paquete da aplicación. Keytool úsase para xestionar un almacén de claves (base de datos) de claves criptográficas, cadeas de certificados X.509 e certificados de confianza.
Para xerar unha clave, abra un símbolo do sistema e execute o seguinte comando:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parámetros:
- genkey - comando para xerar unha chave.
- alias : indica o alias que se utilizará no futuro para referirse á entrada do almacén de claves que contén as claves que se xeran.
- keyalg - nome do algoritmo clave.
- almacén de claves - o nome do almacén de claves que está a usar.
- tamaño da clave - o tamaño de cada clave que se vai xerar.
- validez - validez da chave en número de días.
Exemplo:
Se preparas Key Vault, PATH_TO_KEYSTORE debería ter a extensión .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Se se está a preparar para a sinatura manual, PATH_TO_KEYSTORE debería ter a extensión .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Xerar hash de sinatura
Nota
Salta a asinar o paquete APK se xa xeraches claves e hash de sinatura ao crear o rexistro da aplicación.
Despois de xerar a chave, o comando exportcert utilízase en keytool para exportar o certificado do almacén de claves.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parámetros:
- exportcert - le dende o almacén de claves o certificado asociado co alias e gárdao no ficheiro cert_file. Cando non se especifica ningún ficheiro, o certificado envíase a stdout.
- alias - o alias utilizado ao xerar claves antes.
- almacén de claves - o nome do almacén de claves que está a usar.
- openssl - xera a chave SHA1 para Android.
Engade o hash de sinatura xerado no URI de redirección mentres rexistras a aplicación.
Converter manualmente SHA1 hexadecimal en hash de sinatura codificado en Base64
Podes ver o seguinte erro se o teu hash de sinatura non está codificado correctamente ou non é aceptable no Azure Portal:
"O hash da sinatura debe ser SHA1 codificado en base64."
Cando apareza este erro, intente xerar o hash de sinatura mediante os seguintes pasos:
- Execute
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
para enumerar a información do certificado en modo detallado. - Copie o valor SHA1 da sección Pegadas dixitais do certificado desde a saída. Asegúrese de copiar só o valor hexadecimal.
Por exemplo:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Use calquera conversor de "Hexadecimal a Base64" dispoñible para converter o valor hexadecimal da impresión dixital do certificado copiado nun valor codificado Base64.
Exemplo de valor codificado en Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Copie o valor codificado Base64 xerado como Hash de sinatura no portal de Azure mentres rexistra a aplicación.
Asinar o paquete APK
Para asinar o paquete APK, usaremos a ferramenta apksigner. Esta ferramenta permíteche asinar APK e garantir que a sinatura do paquete APK se verifique correctamente en todas as Android plataformas admitidas polos APK.
Buscar o seu apksigner
Comprobe o camiño de SDK de Android en Android Studio.
Seleccione Ferramenta > Xestor de SDK > Localización do SDK de Android.
Se utiliza iOS, comprobe o ficheiro apksigner do directorio buildTools Version :
Vaia a SDK directorio > ferramentas de construción > buildToolsVersion > lib e comprobe o ficheiro apksigner.jar
Use o ficheiro apksigner
Execute o seguinte comando para usar apksigner e asine o paquete:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parámetros:
- ks - camiño ao almacén de claves.
- ks-key-alias - ruta do alias clave ao ficheiro APK.
Cando se lle solicite, introduza o contrasinal.
Máis información: Ferramentas de liña de comandos de Android Studio: apksigner
Distribuír a aplicación
Podes aloxar o paquete nun servizo de distribución como App Center. Para distribuír mediante Microsoft Intune, consulte Engadir unha aplicación de liña empresarial de Android para Microsoft Intune. Para obter información sobre como darlle acceso a unha aplicación ao servizo de protección de aplicacións de Intune, consulte Déalle á súa aplicación acceso ao servizo de protección de aplicacións de Intune.