2012-06-04 8 views
48

Finalmente he creado un almacén de claves 'final' para mi aplicación. Como mi aplicación usa Google Maps, tomo Tengo que actualizar todos los diseños para usar la nueva clave API que resulta de la aplicación ...Configurar Eclipse para usar keystore firmado

Ahora estoy al tanto del requisito de exportar una APK firmada para su lanzamiento , pero ¿y después de eso? Mi opinión es que para un mayor desarrollo y pruebas, sería más fácil si pudiera configurar Eclipse para usar mi almacén de claves final en lugar del almacén de claves de depuración ... ¿pero no encontré la manera de hacerlo? Solo me permite configurar una clave de depuración "alternativa", pero supongo que no es lo mismo.

Lo siento si estoy demasiado confundido si he entendido mal algo aquí.

+3

FYI, si necesita depurar con su almacén de claves de liberación, agregue android: debuggable = "true" a su en su AndroidManifest.xml y luego exporte el APK firmado. Ejecute la aplicación en el dispositivo y podrá conectarse a su proceso y alcanzar los puntos de interrupción. –

Respuesta

61

pude usar mi almacén de claves Google Juego de liberación como mi almacén de claves de depuración personalizada para facilitar la depuración funcionalidad compra en aplicación. Lo mismo sin duda podría aplicarse a la depuración de cosas de Google Maps también.

Como Devunwired mentioned, hay advertencias. Pero mi solución fue la siguiente:

  1. Copie su clave de liberación en algún lugar.
  2. Cambie la contraseña del almacén de claves/contraseña de clave y alias de clave siguiendo the instructions here (también, siguiendo las recomendaciones de Devunwired para que parezca un almacén de claves de depuración).
  3. Cambiar las preferencias de Eclipse> Android> Crear> Configuración del almacén de claves personalizado en la ruta de la copia realizada en el paso 1.
  4. ¡Hecho!
+1

Funciona bien. El único problema que tuve fue que mi aplicación está dividida en dos partes (biblioteca y aplicación específica del entorno). Obtenía excepciones java.lang.NoClassDefFoundError hasta que limpié ambas partes para reconstruirlas. –

+0

Esta respuesta con los enlaces proporcionados era justo lo que necesitaba para obtener la compra en la aplicación trabajando desde una compilación de depuración. ¡Gracias! –

70

Puede configurar un almacén de claves personalizado para usar para sus compilaciones de depuración (las que suceden al hacer clic en Ejecutar ...) en Eclipse yendo a Preferencias -> Android -> Compilación e ingresando el nombre del archivo en "Personalizar depuración de la opción "keystore".

Sin embargo, que tiene la advertencia de que debe seguir las mismas reglas que un almacén de claves de depuración tradicionales, principalmente:

  1. La contraseña del almacén de claves debe ser "androide"
  2. Debe contener una clave denominada "androiddebugkey"
  3. la contraseña de ese clave debe ser "androide"

Por lo tanto, si bien es posible firmar sus aplicaciones en el ingenio de depuración En el mismo almacén de claves que exporta, requiere que el almacén de claves de producción se vea como una tienda de depuración, lo que hace que sea menos seguro si alguien se queda con el archivo (sería más fácil inspeccionar y adivinar las contraseñas).

HTH

+0

¡Gracias por la aclaración!Eso significa que si solo uso mi clave final para crear un paquete APK de lanzamiento, tengo que adaptar todas las claves de API de Google Maps antes de crear el paquete APK, ¿es correcto? – richey

+0

Las preferencias de BTW se pueden encontrar yendo al menú desplegable 'Ventana' y luego a 'Preferencias' – Hevski

+1

Parece haber otra advertencia de que esta preferencia es global para todos los proyectos en Eclipse. Por lo tanto, otros proyectos también utilizarán esta nueva clave de depuración cuando los esté depurando, lo que puede ser engañoso (las aplicaciones firmadas con la misma clave pueden comunicarse más fácilmente entre sí). En Android Studio, parece que la clave de depuración se puede configurar por proyecto. – ADTC

3

Nos conjunto de claves personalizado que se utilizará para nuestro versiones de depuración. Eclipse Vaya a Preferencias -> Android -> Cree y entre el nombre del archivo en el "Almacén de claves de depuración personalizado".

Importante cuando creamos nuestro almacén de claves para las costumbres de eclipse.:

La contraseña del almacén de claves debe ser "androide" Debe contener una clave denominada "androiddebugkey" la contraseña de ese clave debe ser "androide" Por lo tanto, si bien es posible firmar sus aplicaciones en la depuración con el mismo almacén de claves como Exportar con, requiere que su almacén de claves de producción se vea como una tienda de depuración, lo que hace que sea menos seguro si alguien se queda con el archivo (sería más fácil inspeccionar y adivinar las contraseñas).

si queremos cambiar la contraseña del almacén de claves: $ herramienta de claves -storepasswd -keystore my.keystore

si queremos cambiar la contraseña del almacén de alias: $ herramienta de claves -keypasswd -keystore my.keystore -alias mi_nombre

si queremos cambiar el alias del almacén: $ herramienta de claves -changealias -keystore my.keystore -alias mi_nombre -destalias my_new_name

VKJ enter image description here

0

Puede introducir su depuración y su versión SHA1 para la misma clave de la API de Google mediante Google Developers Console (console.developers.google.com).

De esta forma, tendrá la misma clave de API para ambos y ya no tendrá que cambiarla en el archivo AndroidManifest.xml.

0

Tenemos el mismo problema hace algún tiempo en nuestra oficina. Como necesitábamos esto con bastante frecuencia, escribimos un script simple para facilitar la conversión de almacenes de claves de depuración para depurar.

El guión está disponible en https://github.com/IntellexApps/key2debug

Lo estamos usando desde hace algún tiempo, por lo que debe ser bastante estable.

¡salud!

4

Para que Eclipse se registre automáticamente cuando implemente, debe configurar un almacén de claves que se comporte como el almacén de claves de depuración. Esto significa que debe haber un 'androiddebugkey' y tanto la clave como la contraseña del almacén de claves deben ser 'android'. Por lo tanto, te recomiendo lo siguiente:

  1. hacer una copia de su almacén de claves, he copiado la mina a un archivo llamado iap.keystore
  2. Abrir ventana de terminal/comando con herramienta de claves en el camino (para mí el camino es D: \ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe) o utilizar la ruta completa a keystore en los comandos a continuación
  3. cambiar su contraseña del almacén de claves a 'androide':
    • keytool -storepasswd -keystore iap.keystore
    • Siga solicita que introduzca su contraseña antigua almacén de claves
    • Siga indicación para introducir android como el nueva contraseña
    • Siga mensaje para confirmar android como la contraseña
  4. cambiar el nombre de clave de androiddebugkey (reemplazar Old_Key_Store_Name con su nombre clave actual en el siguiente orden)
    • keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
    • Siga solicita que introduzca la contraseña del almacén de claves (que ahora es andorid)
    • Siga solicita que introduzca su contraseña Old_Key_Store_Name (esto es lo que previamente ha establecido su contraseña de clave a)
  5. Cambiar la contraseña de su androiddebugkey
    • keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
    • Siga solicita que introduzca la contraseña del almacén de claves (que ahora es andorid)
    • Siga solicita que introduzca su androiddebugkey contraseña (esto es lo que previamente ha establecido su contraseña de clave a)
    • Siga indicación para introducir android como la nueva contraseña de clave
    • Siga mensaje para confirmar android como la contraseña de clave
  6. ahora tiene un almacén de claves (con llave), que Eclipse c un uso para firmar automáticamente constructores.
  7. Cargue Eclipse.
  8. Ventana -> Preferencias -> Android -> Construir
  9. Follow 'depuración personalizada almacén de claves' Vaya al archivo que iap.keystore anterior creado
  10. OK

Ahora cuando inicie/depurar el proyecto , usará el almacén de claves que acabamos de configurar para firmar su proyecto. Esto permitirá que cosas como IAP funcionen.

cuidado: esto es conveniente, pero por supuesto si alguien se apodera de su iap.keystore que será capaz de firmar cosas como que mediante el uso de 'androide' como la contraseña del almacén de claves/llave. Esperemos que esto sea obviamente de los pasos enumerados anteriormente, pero solo tómese un segundo para apreciar lo que esto significa para usted (o su empresa). Luego, en base a eso, decida si los riesgos son aceptables y si necesita tomar medidas adicionales para garantizar la seguridad de este archivo.

Cuestiones relacionadas