una studio play modificada google generate generar firmar firma debug crear como apps app android android-install-apk apk

android - studio - Cómo firmar una aplicación ya compilada



generate keystore android (6)

Proceso automatizado:

Use esta herramienta (usa el nuevo apksigner de Google):

https://github.com/patrickfav/uber-apk-signer

Descargo de responsabilidad: soy el desarrollador :)

Proceso manual:

Paso 1: Genera Keystore (solo una vez)

Debe generar un almacén de claves una vez y usarlo para firmar su apk unsigned . Utilice la keytool proporcionada por el JDK que se encuentra en %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

Paso 2 o 4: Zipalign

zipalign que es una herramienta proporcionada por el SDK de Android que se encuentra en, por ejemplo, %ANDROID_HOME%/sdk/build-tools/24.0.2/ es un paso de optimización obligatorio si desea cargar el apk en Play Store.

zipalign -p 4 my.apk my-aligned.apk

Nota: cuando se utiliza el jarsigner antiguo, debe zipalign DESPUÉS de la firma. Al usar el nuevo método apksigner lo haces ANTES de firmar (confuso, lo sé). Invocar zipalign antes de apksigner funciona bien porque apksigner preserva la alineación y compresión de APK (a diferencia de jarsigner).

Puede verificar la alineación con

zipalign -c 4 my-aligned.apk

Paso 3: firmar y verificar

Usar build-tools 24.0.2 y versiones anteriores

Use jarsigner que, al igual que la herramienta de claves, viene con la distribución JDK que se encuentra en %JAVA_HOME%/bin/ y la usa así:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

y puede ser verificado con

jarsigner -verify -verbose my_application.apk

Usando build-tools 24.0.3 y más nuevas

Android 7.0 presenta APK Signature Scheme v2, un nuevo esquema de firma de aplicaciones que ofrece tiempos de instalación de aplicaciones más rápidos y más protección contra alteraciones no autorizadas en los archivos APK (Consulte here y here para obtener más detalles). Por lo tanto, Google implementó su propio apk apksigner llamado apksigner (duh!). El archivo de script se puede encontrar en %ANDROID_HOME%/sdk/build-tools/24.0.3/ (el .jar está en la subcarpeta /lib ). Úselo así

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

y puede ser verificado con

apksigner verify my-app.apk

La documentación oficial se puede encontrar aquí.

Descodifiqué un APK con apktool (ya que se perdió el código fuente original), así que pude solucionar algunos problemas con los archivos xml de diseño. Luego lo reconstruí con apktool y cuando traté de instalarlo en mi dispositivo (usando adb: adb install appname.apk) me dio este error:

[INSTALL_PARSE_FAILED_NO_CERTIFICATES]

Sin embargo, el apk original fue firmado por un keystore (en eclipse IDE), este no es, ¿cómo puedo firmarlo correctamente con su archivo trapezoidal original fuera de Eclipse?


La forma más rápida es mediante la firma con el almacén de claves de depuración:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore app.apk androiddebugkey -storepass android

o en Windows:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore %USERPROFILE%/.android/debug.keystore test.apk androiddebugkey -storepass android


Para aquellos de ustedes que no desean crear un archivo bat para editar para cada proyecto, o no quieren recordar todos los comandos asociados con los keytools y los programas jarsigner y solo quieren hacerlo en un solo proceso, utilicen este programa:

http://lukealderton.com/projects/programs/android-apk-signer-aligner.aspx

Lo construí porque estaba harto del largo proceso de tener que escribir todas las ubicaciones de archivos cada vez.

Este programa puede guardar su configuración así que la próxima vez que la inicie, solo necesita presionar Generar y se encargará de ello. Eso es.

No requiere instalación, es completamente portátil y guarda sus configuraciones en un archivo CSV en la misma carpeta.



crea una clave usando

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

luego, firme el apk usando:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

Revisa aquí para mas información


revisa apk-signer una buena manera de iniciar sesión en tu aplicación