Einige (aber nicht alle) Nutzer erhalten beim Herunterladen meiner App von Google Play "Paketdatei wurde nicht korrekt signiert"

8

Ich habe eine App im Google Play Store eingereicht und veröffentlicht. Ich habe beim Hochladen meiner Binärdatei keine Fehler erhalten. Jetzt erhalte ich Berichte von einigen (nicht allen) Kunden, die angeben, dass sie den folgenden Fehler bei der Installation unserer App erhalten:

  

"Paketdatei wurde nicht korrekt signiert"

Wenn ich versuche, diesen Fehler selbst zu reproduzieren (mit einem Nexus 7 auf die Werkseinstellungen zurücksetzen), läuft alles reibungslos ab.

Dies scheint dem in dieser Frage beschriebenen Problem ähnlich zu sein, aber das akzeptierte Antwort scheint in diesem Fall nicht zu gelten.

Ich habe Vorschläge zur Verwendung von JDK 6 anstelle von JDK 7 gesehen, aber Antworten wie diese a> Lassen Sie mich glauben, dass diese Lösung für Situationen geeignet ist, in denen der Keystore in einer älteren Version von Java erstellt wurde. Darüber hinaus mache ich mir Gedanken darüber, wie sich das Zurücktreten einer neuen Version mit einer älteren Java-Version auf unsere Kunden auswirken wird, die Probleme mit der Erstinstallation hatten.

  1. Macht es Sinn, dass die Version des JDK, die zum Signieren der App verwendet wird, sich nur auf einige Kunden auswirkt? Wenn ja, welche Faktoren können bestimmen, auf welchen Geräten das Problem auftritt?
  2. Würde ich ändern, wie ich die Binärdatei signiere (aber nicht das Zertifikat), hätte dies negative Auswirkungen auf unsere Fähigkeit, die App für Benutzer zu aktualisieren, die dieses Problem derzeit nicht haben
  3. Wenn die Java-Version, mit der ich die APK signiert habe, nicht das Problem ist, was könnte sonst noch einen solchen Fehler verursachen?

Bearbeiten: Alle Benutzer mit diesem Problem (oder ohne dieses Problem) führen Android 4.0 oder höher aus. Die App unterstützt keine früheren Versionen von Android.

    
lzam 12.09.2014, 16:43
quelle

1 Antwort

6

Nachdem ich ein bisschen herumgelesen habe, werde ich einen Stich machen. Sie müssen den Algorithmus explizit für den JDK7 jarsigner angeben.

Fügen Sie dies der build.xml-Datei Ihres Projekts hinzu:

%Vor%

Nach ein wenig mehr lesen, es scheint, dass es über den Standard-Algorithmus auf dem Gerät für den Digest verwendet wird, scheint es von Gerät zu Gerät mit dem gemeinsamen Algorithmus auf allen Geräten zur Verfügung stehen, die in der Xml oben angegeben ist . Dies ist der Grund, warum es auf einigen Geräten nicht funktioniert, andere Benutzer haben das gleiche erlebt, zB: " Paket nicht korrekt signiert "erscheint für einige Benutzer

Dieser Blog-Eintrag enthält auch einige interessante Informationen zu apk signing: Android Codesignierung

Ich bin jetzt ziemlich zuversichtlich, dass die explizite Einstellung des android-spezifizierten Algorithmus zum Signieren Ihre Kunden, die bereits installiert haben, nicht beeinflusst und ich erwarte, dass es Ihr Problem für die anderen Kunden löst.

    
C James 23.09.2014, 08:29
quelle