¿Cómo puedo especificar la ubicación del almacén de claves de depuración para las comstackciones de depuración de las ants de Android?

¿Es posible especificar la ubicación de un almacén de claves de depuración creado al crear Debug .apk ‘s ( -debug.apk ) con ant debug ? Solo veo la posibilidad de especificar la ubicación del almacén de claves de liberación.

Me gustaría compartir el almacén de claves de depuración en varias PC sin copiarlas sobre el que se coloca en el directorio ‘.android‘. El almacén de claves de depuración podría, por ejemplo, residir dentro del repository de código fuente. Pero necesito una forma de decirle a la ant dónde encontrar el almacén de claves de depuración.

Puede eliminar la firma de la apk final y volver a firmarla. Es solo una construcción de depuración para poder evitar el zipalign (al menos no tengo problemas en mi comstackción).

Copie su almacén de claves en un archivo debug.keystore en el proyecto y agregue lo siguiente en ant.properties

 debug.key.store.password=android debug.key.alias.password=android debug.key.store=../debug.keystore debug.key.alias=androiddebugkey 

Y agrega lo siguiente en tu build.xml

          Signing final DEBUG apk with a common signature... signapk input="${out.final.file}" output="${out.packaged.file}" keystore="${debug.key.store}" storepass="${debug.key.store.password}" alias="${debug.key.alias}" keypass="${debug.key.alias.password}"      

Debería poder especificar el almacén de claves para usar con estas propiedades

 key.store=/path/to/key.keystore key.alias=alias key.store.password=pass key.alias.password=pass 

Solo pasa las propiedades a Ant.

[EDITAR] De los documentos en http://developer.android.com/guide/publishing/app-signing.html#setup

Las herramientas de comstackción de Android proporcionan un modo de firma de depuración que hace que sea más fácil para usted desarrollar y depurar su aplicación, al mismo tiempo que cumple con los requisitos del sistema Android para firmar su .apk. Al utilizar el modo de depuración para construir su aplicación, las herramientas SDK invocan Keytool para crear automáticamente una clave y un almacén de claves de depuración. Esta clave de depuración se usa para firmar automáticamente .apk, por lo que no es necesario que firme el paquete con su propia clave.

Las herramientas de SDK crean el almacén de claves de depuración / clave con nombres / contraseñas predeterminadas:

  • Nombre del almacén de claves: “debug.keystore”
  • Contraseña del almacén de claves: “android”
  • Alias ​​clave: “androiddebugkey”
  • Contraseña clave: “android”
  • CN: “CN = Depuración de Android, O = Android, C = EE. UU.”

Si es necesario, puede cambiar la ubicación / el nombre del almacén de claves de depuración / clave o suministrar un almacén de claves / clave de depuración personalizada para usar . Sin embargo, cualquier keystore / key de depuración personalizada debe usar los mismos keystore / key names y passwords como la clave de depuración predeterminada (como se describe arriba). (Para hacerlo en Eclipse / ADT, vaya a Windows> Preferencias> Android> Crear).

Por lo que puedo decir, para hacer esto debes anular el objective “-do-debug”. Sin embargo, me gustaría saber si hay una manera más elegante. Agregué esto a mi build.xml

        Signing final apk...    Debug Package: ${out.final.file}      
  • Crea una carpeta nueva y vacía dentro de tu espacio de trabajo de Eclipse.

  • Copie el archivo “debug.keystore” desde su ubicación estándar (por ejemplo, “c: /Users/YourAcount/.Android/” en Windows) en ese nuevo directorio.

  • Configure Eclipse para usar ese nuevo directorio / archivo para todos los archivos APK de depuración (Eclipse -> Ventana -> Preferencias -> Android -> Crear -> Depuración personalizada de Keystore “.

Un método sencillo que puede usar como solución temporal (que es especialmente útil en nuestro sistema de CI donde se crean muchos proyectos y donde se requiere un toque suave cuando se trata de almacenes de claves), es seguir adelante y ejecutar la comstackción de depuración, usar AAPT para eliminar el contenido de la carpeta META-INF y ejecutar jarsigner para firmarlo con su debug.keystore personalizado.

En pseudo-script, parece que: # Depuración de ant normal y depuración de ant

 # Remove default debug signing aapt remove YourDebugApp.apk META-INF/MANIFEST.MF aapt remove YourDebugApp.apk META-INF/CERT.SF aapt remove YourDebugApp.apk META-INF/CERT.RSA # Use Jarsigner and the custom debug.keystore. # NOTE: This assumes you explicitly called out MD5withRSA as your signing algorithm # when you generated the key; drop the -sigalg tag if you did not. jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -storepass android YourDebugApp.apk # Verify signing jarsigner -verify YourDebugApp.apk 

Por lo que he visto hasta ahora, ninguna solución existente funciona con la última versión de ant.

La única forma primitiva de hacerlo es reemplazar el depurador.keystore predeterminado en su carpeta predeterminada.

La ubicación predeterminada es la carpeta .android. Por lo general, en C: \ Users \ USER_NAME.android En Windows puede acceder utilizando% USERPROFILE% .android.

Lo que hice fue crear un script de Powershell para hacer una copia de seguridad del archivo predeterminado, copiar el archivo del almacén de claves en la ubicación predeterminada, crear la aplicación de depuración con firma, eliminar el archivo del almacén de claves y restaurar el archivo original.

Avíseme si necesita más información aquí.

Encontré la otra solución …

Agregue lo siguiente en $ {PROJECT_HOME} /custom_rules.xml

                                   Signing final apk...  storepass="android" alias="androiddebugkey" keypass="android"/>     Debug Package: ${out.final.file}      
    Intereting Posts