Me había cargado mi app para Google Play (de nuevo cuando fue llamado Android Market) hace algún tiempo.

Hoy he actualizado la app, pero me había borrado el anterior almacén de claves y creado uno nuevo.

Cuando se carga, se dice que el APK debe ser firmado con los mismos certificados que la versión anterior:

Cargar error

Ha cargado un APK está firmado con un certificado diferente a su anterior APKs. Debe utilizar el mismo certificado.

Existente Apk está firmado con el certificado(s) con la huella dactilar(s):

[ SHA1: 89:2F:11:FE:CE:D6:CC:DF:65:E7:76:3E:DD:A7:96:4F:84:DD:BA:33 ]

y el certificado(s) que se utiliza para firmar el APK que has subido tiene huellas dactilares(s):

[ SHA1: 20:26:F4:C1:DF:0F:2B:D9:46:03:FF:AB:07:B1:28:7B:9C:75:44:CC ]

Pero no tengo este certificado, y no quiero borrar y volver a publicar la aplicación, porque ha de usuarios activos.

¿Qué puedo hacer para firmar la aplicación con el nuevo certificado?

  • Estoy teniendo un problema diferente: he intentado actualizar una app, pero me mantiene diciendo: este error. El hecho es que nunca he cambiado el almacén de claves!!! ¿Qué puedo hacer?!?
  • ¿cómo se resuelve??
  • stackoverflow.com/questions/48017376/…
InformationsquelleAutor arts777 | 2011-01-30

11 Comentarios

  1. 175

    Nada. Lea la documentación: La publicación de las Actualizaciones en Android Market

    Antes de subir la actualización de la aplicación, asegúrese de que se ha incrementado el android:versionCode y android:versionName atributos en el elemento del archivo de manifiesto. También, el nombre del paquete debe ser el mismo y el .apk debe ser firmado con la misma clave privada. Si el nombre del paquete y el certificado de firma no coinciden con los de la versión existente, el Mercado tendrá en cuenta una nueva aplicación y no ofrecen a los usuarios como una actualización.

    • Gran respuesta. Nunca me di cuenta de que si la llave se ha perdido, a continuación, la aplicación no puede ser actualizada. Debe tener en cuenta para la copia de seguridad de la clave en un lugar seguro.
    • Lo que yo haría normalmente es para almacenar el archivo de almacén de claves en el svn. Poner una nueva carpeta con el nombre de credenciales, junto con el tronco/tag/ramas, y almacenar el archivo de almacén de claves no. También añadir una nueva .txt archivo que indica el archivo de almacén de claves. Almacén de claves es tan importante como el código fuente. Una vez que has perdido( o se olvidó la contraseña) estas JODIDO..
    • Por favor, NO verifique su contraseña de almacén de claves (o cualquier contraseñas para el caso) en el control de código fuente, como @Krishnabhadra dice. Mantener el almacén de claves y contraseña por separado, y la contraseña en un lugar seguro.
    • Qué?! Pero sólo me dijo que mi clave era demasiado viejo, así que he eliminado y creado uno nuevo ahora me sale esto!?
    • El sistema de construcción podría haber dicho que su debug clave era demasiado viejo, pero eso es muy poco probable que haya ocurrido con un versión clave, ya que Google Play debería rechazar las claves que caducan antes de de octubre de 2033.
    • Esto no es cierto, no se puede cargar un nuevo archivo apk si el firmado cert ha cambiado

  2. 106

    Hizo firmar con la depuración de tecla por error?

    Google Play no permite publicar una aplicación firmada con su versión de depuración de almacén de claves. Si intenta cargar un APK de Google Play, se producirá un error con el mensaje «ha subido una APK que se firmó en modo de depuración. Tiene que firmar el APK en modo de lanzamiento.»

    Sin embargo, si intenta cargar un actualización que se firmó con la depuración de almacén de claves, se no ver este mensaje; Google Play mostrará el mensaje que se muestra en la pregunta, refiriéndose a SHA1 huellas dactilares.

    Así que en primer lugar, compruebe si usted firmó en la aplicación con su depuración tecla por error.


    ¿Cómo puedo comprobar que la firma de claves se utilizaron?

    Recogen la información de la APK

    Puede comprobar que los certificados de la APK original y actualización de la APK se firmaron con mediante el uso de estos comandos, utilizando el Java keytool:

    keytool -list -printcert -jarfile original.apk
    keytool -list -printcert -jarfile update.apk

    Esta muestra información detallada acerca de cómo APK fue firmado, por ejemplo:

    Owner: CN=My App, O=My Company, L=Somewhere, C=DE
    Issuer: CN=My App, O=My Company, L=Somewhere, C=DE
    Serial number: 4790b086
    Valid from: Mon Nov 11 15:01:28 GMT 2013 until: Fri Mar 29 16:01:28 BST 2041
    Certificate fingerprints:
      MD5:  A3:2E:67:AF:74:3A:BD:DD:A2:A9:0D:CA:6C:D4:AF:20
      SHA1: A6:E7:CE:64:17:45:0F:B4:C7:FC:76:43:90:04:DC:A7:84:EF:33:E9
      SHA256: FB:6C:59:9E:B4:58:E3:62:AD:81:42:...:09:FC:BC:FE:E7:40:53:C3:D8:14:4F
             Signature algorithm name: SHA256withRSA
             Version: 3

    Las partes importantes a destacar aquí — para cada APK — son los SHA1 de huellas dactilares de valor, la Propietario valor de identidad, y la Válidos desde/hasta fechas.


    Si que keytool comando no funciona (el -jarfile opción requiere Java 7), usted puede obtener más información básica a través de la jarsigner comando:

    jarsigner -verify -verbose:summary -certs original.apk
    jarsigner -verify -verbose:summary -certs update.apk

    Por desgracia, este no muestra la huella digital SHA1, pero que muestran el X. 509 identidad del propietario, junto con el certificado de las fechas de caducidad. Por ejemplo:

    sm  4642892 Thu Apr 17 10:57:44 CEST 2014 classes.dex (and 412 more)
    
        X.509, CN=My App, O=My Company, L=Somewhere, C=DE
        [certificate is valid from 11/11/13 12:12 to 29/03/41 12:12]
        [CertPath not validated: Path does not chain with any of the trust anchors]

    Puede ignorar cualquier «CertPath no validado» del mensaje, junto con advertencias acerca de las cadenas de certificados o marcas de tiempo; no son pertinentes en este caso.

    Comparar el Propietario, SHA1 y los valores de Caducidad entre las APKs

    • Si el Propietario/X. 509 valor de identidad es CN=Android Debug, O=Android, C=US, luego de haber firmado el APK con su de depuración clave, no la versión original de la clave

    • Si el SHA1 de huellas dactilares de valor es la diferencia entre el original y la actualización de los archivos Apk, entonces usted hizo no utilizar la misma clave de firma para ambos APKs

    • Si el Propietario/X. 509 valores de identidad son diferentes, o el certificado de las fechas de caducidad son diferentes entre las dos APKs, entonces usted hizo no utilizar la misma clave de firma para ambos APKs

    Tenga en cuenta que incluso si el Propietario/X. 509 valores son idénticos entre los dos certificados, esto no significa que los certificados son idénticos — si otra cosa no coincide — como la huella de valores, a continuación, los certificados son diferentes.


    De búsqueda para el almacén de claves original, comprobar las copias de seguridad

    Si las dos APKs tienen diferentes certificado de información, entonces usted debe encontrar el almacén de claves original, es decir el archivo con la primera huella digital SHA1 valor que Google Play (o keytool) le dijo a usted.

    De búsqueda a través de todos los archivos de almacén de claves que usted puede encontrar en su equipo, y en las copias de seguridad que tiene, hasta que tienen el uno con el correcto huella digital SHA1:

    keytool -list -keystore my-release.keystore

    Solo presione Entrar si se le pide la contraseña — que no necesariamente tiene que entrar en él si usted sólo desea comprobar rápidamente el valor SHA1.


    No puedo encontrar el almacén de claves original en cualquier lugar

    Si usted no puede encontrar el original de almacén de claves, se nunca ser capaz de publicar actualizaciones para esta aplicación particular.

    Android menciona explícitamente en el Firma De La Aplicación página:

    Advertencia: Mantener el almacén de claves y la clave privada en un lugar seguro y protegido, y asegúrese de que tiene copias de seguridad seguras de ellos. Si publicar una aplicación en Google Play y, a continuación, perder la clave con la que firmó su aplicación, usted no será capaz de publicar actualizaciones para su aplicación, ya que siempre debe firmar todas las versiones de la aplicación con la misma clave.

    Después de la primera liberación de un APK, todas las versiones posteriores debe ser firmado con la misma clave.


    Puedo extraer el original de la clave de firma de la original APK?

    No. Esto no es posible. El APK solo contiene información pública, y no su información de la clave privada.


    Puedo migrar a una nueva clave de firma?

    No. Incluso si usted no encuentra el original, no puede firmar una APK con Una clave, luego de firmar la siguiente actualización con ambas teclas a y B, entonces el signo de la próxima actualización después de que sólo con una clave B.

    La firma de un APK (o cualquier archivo JAR) con varias claves es técnicamente posible, pero Google Play no acepta los archivos Apk con varias firmas.

    Intentar hacerlo resultará en el mensaje «el APK ha sido firmado con varios certificados. Por favor, sólo firmar con un certificado y subirlo de nuevo.»


    ¿Qué puedo hacer?

    Usted tendrá que construir su aplicación con un nuevo IDENTIFICADOR de aplicación (por ejemplo, cambiar de «com.ejemplo.myapp» a «com.ejemplo.myapp2») y crear un nuevo listado en Google Play.

    Posiblemente usted también tendrá que cambiar el código para que la gente pueda instalar la nueva aplicación, incluso si tienen la edad instalada la aplicación, por ejemplo, usted necesita para asegurarse de que no tengan conflicto de los proveedores de contenido.

    Perderá su instalación existente de base, comentarios etc., y tendrá que encontrar una manera de conseguir a sus clientes a desinstalar la app antigua e instalar la nueva versión.

    De nuevo, asegúrese de tener copias de seguridad seguras de que el almacén de claves y contraseña(s) que utiliza para esta versión.

    • He probado el comando le dio, para la comprobación de depuración (que en realidad estaba buscando), pero devuelve un error de que el frasco contiene las firmas que no incluyen una marca de tiempo. He creado mi apk usando este hilo: stackoverflow.com/questions/16622843/…
    • ¿No tienes salida y sólo un error? Al ejecutar el comando, también tengo una marca de advertencia (no es un error). Así que siempre y cuando usted consigue el X. 509 de salida, que es todo lo que necesita.
    • Sí, hago la X. 509 de salida, por lo que no es un problema, supongo? ¿Qué acerca de [CertPath not validated: Path does not chain with any of the trust anchors], no es un problema escena? Hago ver mi nombre en CN así que supongo que debidamente firmado 🙂
    • Esto ya está contestado en la «Verificación de la firma de las claves que se utilizan» sección.
    • Gran tutorial & explicación, muchas gracias!
    • Yo tenía un mini ataque al corazón el día de hoy. Yo estas líneas de comando para averiguar el Almacén de claves ocultas. Muchas gracias, hombre! Me has salvado… de verdad 😀

  3. 8

    Nada – Google dice claramente que la aplicación está identificado por las teclas que se utilizan para firmar. Por consiguiente, si usted ha perdido las llaves, usted necesita para crear una nueva aplicación.

    • Se hacer de advertencia. Observe el gran rojo Warning mensaje: developer.android.com/tools/publishing/…
    • En cualquier caso, usted puede publicar más de una aplicación en la misma cuenta de desarrollador, así que usted no tiene que pagar de nuevo.
  4. 6

    Hoy me enfrenté a un mismo tema, por desgracia, yo estaba teniendo dos alias en mi archivo de almacén de claves.La apk debe ser firmado con los mismos certificados que la versión anterior

  5. 4

    Aquí tengo la respuesta para esa pregunta . Después de buscar por mucho tiempo, finalmente llego a crackear la clave y la contraseña de este . Me olvide mi clave de alias y también el archivo jks pero afortunadamente yo sé que el grupo de contraseña lo que yo había puesto en ella . pero encontrar las combinaciones adecuadas para la que fue tarea más pesada para mí .

    Solución –
    Descargar este – Keytool IUI versión 2.4.1 plugin
    La apk debe ser firmado con los mismos certificados que la versión anterior

    la ventana emergente que ahora se muestran el nombre de alias ..si jks archivo es correcto ..
    haga clic en alias y pulsar el botón «ver certificados de la cadena «..
    se mostrará la Clave SHA1 .. partido de esta clave con tha clave, mientras se estaba cargando el apk en google app store …

    si es coincidencia, entonces usted está con el derecho jks archivo y alias ..

    ahora suerte tengo montón de contraseña para que coincida ..
    La apk debe ser firmado con los mismos certificados que la versión anterior

    ahora ir a este scrren poner la misma jks camino .. y contraseña(entre la contraseña ) poner la ruta en «archivo de Certificado»

    si la pantalla muestra ningún error, entonces la contraseña no es coincidencia .. si no aparece ningún error, entonces eso significa que usted está con la correcta jks archivo . alias correcto y la contraseña (la)
    ahora, con la que se puede subir el apk de play store 🙂

    • has perdido la clave privada y que fueron capaces de recuperar de esta manera? Si la respuesta es sí, es posible que el enlace de donde descargar la herramienta? Y cómo puedo abrir la aplicación?
    • Creo que se está refiriendo a github.com/ebourg/keytool-iui
  6. 3

    Si usted tiene antecedentes de archivo apk con usted(copia de seguridad), a continuación, utilizar jarSigner para extraer el certificado de que la apk, luego usar esa clave o utilizar la herramienta clave para clonar ese certificado, puede ser que le ayudará a…
    Enlaces útiles son jarsigner docs y keytool docs.

    • «..el uso jarSigner para extraer el certificado de ese apk» – nos Dicen cómo hacerlo?
    • Que no va a recuperar la clave privada tendría que firmar el apk de nuevo.
    • Apk debe ser firmado con la misma clave privada
  7. 2

    Yo sólo tenía que esto ocurra fuera de la azul claro. Yo realmente no creo que he cambiado nada.

    Sin embargo, ‘Construir’/’Limpieza del Proyecto’ fija.

    • Hmm, he estado gastando 1 semana, hice todo lo posible. y es el momento de decir «WTF», pero es la única cosa que ha ayudado. (También he intentado invalidar cachés que no ayuda.. Gracias
    • Esto se ha solucionado el problema después de volverse loco por una hora
  8. 1

    Recomiendo Almacén de claves Explorer (https://keystore-explorer.org/) que permite el acceso a su almacén de claves sin tener que subirlo a Google Play. De esta manera se puede solucionar si se introduce una contraseña incorrecta.

  9. 0

    Me había enfrentado a este problema en los últimos tiempos, después de probar diferentes maneras de iniciar sesión en como activar V1 O V2, firmado por el cambio de nombre de alias y última llegado a saber que estoy utilizando mal archivo de almacén de claves

  10. 0

    Puede utilizar la nueva característica de Google play de la aplicación de la firma para generar un nuevo archivo de la clave .

    Después de Mayo de 2017 Google play store agregar una nueva característica en Play store y
    Es una Buena Noticia Para los Desarrolladores de Android.
    A partir de esta característica, el Desarrollador puede actualizar su app o Apk que perdieron a un archivo de Almacén de claves.
    usted necesidad de permitir a google play de la aplicación de la firma en la play store de la consola.

    https://support.google.com/googleplay/android-developer/answer/7384423?hl=en

    http://www.geekcodehub.com/2018/05/23/keystore-lost-in-android/

  11. 0

    Mi [tonto] error fue que usé la aplicación de depuración.archivo apk en lugar de la aplicación de liberación.archivo apk.
    Usted necesita para elegir la «liberación» de «Construir Variantes» de marco a la hora de generar firmado APK.
    La aplicación de liberación.apk archivo debe estar ubicado en «app\release» en su carpeta raíz del proyecto.

Dejar respuesta

Please enter your comment!
Please enter your name here