una studio modificada generate generar firmar firma debug crear como capturar android apk signing

studio - Cómo firmar un archivo apk de Android



generar apk debug android studio (6)

APK Signing Process

Para firmar manualmente el archivo APK de Android necesitamos tres comandos debajo

1 Generar archivo Keystore

keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME>.keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validity 10000

2 Firme su archivo APK usando Jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

3 Alinee el APK firmado con la herramienta zipalign

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH>

#STEP-1#

Generate Keystore file

F: / ru / ru_doc / Signed_apk / MySignedApp> keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME> .keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validez 10000

Ejemplo_

F:/ru/ru_doc/Signed_apk/MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000

contraseña de keystore : contraseña de la clave de su aplicación @ 123 : yourApp @ 123

CMD O / P-

D:/ru/SignedBuilds/MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: MySignedApp Sample What is the name of your organizational unit? [Unknown]: Information Technology What is the name of your organization? [Unknown]: MySignedApp Demo What is the name of your City or Locality? [Unknown]: Mumbai What is the name of your State or Province? [Unknown]: Maharashtra What is the two-letter country code for this unit? [Unknown]: IN Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr ect? [no]: y Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10, 000 days for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN Enter key password for <MySignedApp> (RETURN if same as keystore password): Re-enter new password: They don''t match. Try again Enter key password for <MySignedApp> (RETURN if same as keystore password): Re-enter new password: [Storing id.keystore] D:/ru/SignedBuilds/MySignedApp>

#STEP-2#

Sign your app with your private keystore using jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

Ejemplo_

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:/ru/SignedBuilds/MySignedApp/id.keystore D:/ru/SignedBuilds/MySignedApp/MySignedAppS1-release-unsigned.apk id

CMD O / P-

D:/ru/SignedBuilds/MySignedApp>jarsigner -verbose -sigalg SHA1withRSA - digestalg SHA1 -keystore D:/ru/SignedBuilds/MySignedApp/id.keystore D:/ru/SignedBuilds/MySignedApp/MySignedAppS1-release-unsigned.apk id --- ect Enter Passphrase for keystore: adding: META-INF/MANIFEST.MF adding: META-INF/---.SF adding: META-INF/---.RSA signing: AndroidManifest.xml ..... signing: classes.dex signing: lib/commons-codec-1.6.jar signing: lib/armeabi/libkonyjsvm.so jar signed. Warning: No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate''s expiration date (2044-02-07) or after an y future revocation date. D:/ru/SignedBuilds/MySignedApp>

Verify that your APK is signed

jarsigner -verify -verbose -certs <_JARSIGNED_APK_FILE_PATH>

Ejemplo_

jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk

CMD O / P-

D:/ru/SignedBuilds/MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope jar verified. Warning: This jar contains entries whose certificate chain is not validated. This jar contains signatures that does not include a timestamp. Without a timestamp, users may not b e able to validate this jar after the signer certificate''s expiration date (2044-02-09) or after any future revocation date. D:/ru/SignedBuilds/MySignedApp>

#STEP 3#

Alinee el paquete APK final con zipalign

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH_WITH_NAME_ofSignedAPK_>

Ejemplo_

zipalign -v 4 D:/ru/SignedBuilds/MySignedApp/MySignedAppS1-release-unsigned.apk D:/ru/SignedBuilds/MySignedApp/MySignedApp.apk

CMD O / P-

D:/Android/android-sdk/build-tools/19.1.0>zipalign -v 4 D:/ru/ru_doc/Signed_apk/MySignedApp/28.09.16 _prod_playstore/MySignedAppS1-release-unsigned.apk D:/ru/ru_doc/Signed_apk/MySignedApp/28.09.16_prod _playstore/MySignedApp.apk Verifying alignment of D:/ru/SignedBuilds/MySignedApp/MySignedApp.apk ( 4)... 4528613 classes.dex (OK - compressed) 5656594 lib/commons-codec-1.6.jar (OK - compressed) 5841869 lib/armeabi/libkonyjsvm.so (OK - compressed) Verification succesful D:/Android/android-sdk/build-tools/19.1.0>

Verify that your APK is Aligned succesfully

zipalign -c -v 4 <_YOUR_APK_PATH>

Ejemplo_

zipalign -c -v 4 D:/ru/SignedBuilds/MySignedApp/MySignedApp.apk

CMD O / P-

D:/Android/android-sdk/build-tools/19.1.0>zipalign -c -v 4 D:/ru/SignedBuilds/MySignedApp/MySignedApp.apk Verifying alignment of D:/ru/SignedBuilds/MySignedApp/MySignedApp.apk ( 4)... 4453984 res/drawable/zoomout.png (OK) 4454772 res/layout/tabview.xml (OK - compressed) 4455243 res/layout/wheel_item.xml (OK - compressed) 4455608 resources.arsc (OK) 4470161 classes.dex (OK - compressed) 5597923 lib/commons-codec-1.6.jar (OK - compressed) 5783198 lib/armeabi/libkonyjsvm.so (OK - compressed) Verification succesful D:/Android/android-sdk/build-tools/19.1.0>

Nota:

Verify comandos es solo para verificar si el APK está compilado y firmado correctamente!

Referencia

firmando manualmente

androidapk-code-signing-process

Espero que esto ayude en e y todos :)

Estoy intentando firmar mi archivo apk. No puedo entender cómo hacerlo. No puedo encontrar buenas direcciones en profundidad. Tengo muy poca experiencia en programación, por lo que cualquier ayuda sería apreciada.


¡No te preocupes ...! Siga estos pasos a continuación y obtendrá su archivo .apk firmado. También me preocupaba eso, pero estos pasos me alejan de la frustración. Pasos para firmar su solicitud:

  1. Exportar el paquete sin firmar:

Haga clic derecho en el proyecto en Eclipse -> Herramientas de Android -> Exportar paquete de aplicaciones sin firmar (como aquí exportamos nuestro GoogleDriveApp.apk al escritorio)

Firme la aplicación usando su almacén de claves y la herramienta jarsigner (siga los pasos a continuación):

Abra cmd -> cambie el directorio donde su "jarsigner.exe" existe (como aquí en mi sistema existe en "C: / Archivos de programa / Java / jdk1.6.0_17 / bin"

Ahora ingrese el comando belwo en cmd:

jarsigner -verbose -keystore c: / users / android / debug.keystore c: / users / pir fahim / Desktops / GoogleDriveApp.apk my_keystore_alias

Le pedirá que ingrese su contraseña: ingrese la frase de contraseña para el almacén de claves: firmará su apk. Para verificar que la firma sea exitosa, puede ejecutar:

jarsigner -verify c: / users / pir fahim / Desktops / GoogleDriveApp.apk

Debería volver con: jar verificado.

Método 2

Si está usando eclipse con ADT, entonces es simple compilar, firmar, alinear y preparar el archivo para su distribución. Qué debe hacer simplemente siga estos pasos.

  • Archivo> Exportar.
  • Exportar aplicaciones de Android
  • Examinar -> seleccionar su proyecto
  • Siguiente -> Siguiente

Estos pasos compilarán, firmarán y ajustarán su proyecto de forma zip y ahora están listos para distribuir su proyecto o cargarlo en Google Play Store.


Aquí hay una guía sobre cómo firmar manualmente un APK. Incluye información sobre el nuevo apk-signer introducido en build-tools 24.0.3 (10/2016)

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 obligatoria 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í.


El manual es lo suficientemente claro. Por favor, especifique a qué parte se queda atascado después de trabajar en ello, sugeriría:

https://developer.android.com/studio/publish/app-signing.html

Bien, un pequeño resumen sin referencia o eclipse, así que deja un poco de espacio para errores, pero funciona así

  • Abra su proyecto en eclipse
  • Presione el botón derecho -> herramientas (¿herramientas de Android?) -> exportar aplicación firmada (apk?)
  • Revisa el asistente:
  • Crea una nueva tienda de claves. recuerda esa contraseña
  • Firme su aplicación
  • Guárdalo, etc.

Además, desde el enlace:

Compilar y firmar con Eclipse ADT

Si está utilizando Eclipse con el complemento ADT, puede usar el Asistente de exportación para exportar un archivo .apk firmado (e incluso crear un nuevo almacén de claves, si es necesario). El Asistente de exportación realiza toda la interacción con Keytool y Jarsigner por usted, lo que le permite firmar el paquete utilizando una GUI en lugar de realizar los procedimientos manuales para compilar, firmar y alinear, como se explicó anteriormente. Una vez que el asistente haya compilado y firmado su paquete, también realizará la alineación del paquete con zip align. Debido a que el Asistente de exportación utiliza Keytool y Jarsigner, debe asegurarse de que estén accesibles en su computadora, como se describe anteriormente en la Configuración básica para la firma.

Para crear un archivo .apk firmado y alineado en Eclipse:

  1. Seleccione el proyecto en el Explorador de paquetes y seleccione Archivo> Exportar.
  2. Abra la carpeta de Android, seleccione Exportar aplicación de Android y haga clic en Siguiente.

    Ahora se inicia el asistente Exportar aplicación Android, que lo guiará a través del proceso de firma de su aplicación, incluidos los pasos para seleccionar la clave privada con la que firmar .apk (o crear un nuevo almacén de claves y una clave privada).

  3. Complete el Asistente de exportación y su aplicación será compilada, firmada, alineada y lista para su distribución.

Me encontré con este problema y fue resuelto al verificar la versión min SDK en el manifiesto. Se estableció en 15 (ICS), pero mi teléfono corría 10 (Gingerbread)


Para los usuarios de IntelliJ IDEA o Android Studio, siga estos pasos:
* Desde el menú Build/Generate signed APK
* Necesita crear una ruta del almacén de claves. Desde el cuadro de diálogo, haz clic en Create new . Creará un archivo jks que incluye sus claves. Seleccionar carpeta, definir una contraseña. Entonces tu almacén de claves está bien.
* Crea una nueva clave para tu aplicación usando alias, contraseña, tu nombre, etc.
* Haga clic en Siguiente.
* Desde el cuadro de diálogo, seleccione Proguard o no.

Su archivo APK firmado está listo.

Archivo de ayuda: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html