Compartir por


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:

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

Unha captura de pantalla co comando keytool usando os parámetros do exemplo anterior.

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:

  1. Execute keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE para enumerar a información do certificado en modo detallado.
  2. 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
  3. 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=
  4. 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

  1. Comprobe o camiño de SDK de Android en Android Studio.

  2. 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.

Consulte tamén