2014-09-12 4 views
8

Ich habe eine App im Google Play Store eingereicht und veröffentlicht. Ich habe beim Hochladen meiner Binärdatei keine Fehler erhalten. Nun erhalte ich Berichte von einige (nicht alle) Kunden die besagt, dass sie die folgende Fehlermeldung erhalten, wenn unsere App installieren:Einige (aber nicht alle) Benutzer erhalten "Paketdatei wurde nicht korrekt signiert" beim Herunterladen meiner App von Google Play

„Paketdatei nicht korrekt signiert wurde“

Als ich versuchen Sie, diesen Fehler selbst zu replizieren (mit einem Nexus 7 auf Werkseinstellungen zurücksetzen), aber alles läuft reibungslos.

Dies scheint ähnlich zu dem in this Frage beschriebenen Problem zu sein, aber die accepted answer scheint in diesem Fall nicht zutreffen.

I gesehen Vorschläge haben JDK 6 verwenden anstelle von JDK 7, aber Antworten wie this one führen mich, dass diese Lösung zu glauben, für Situationen, in denen die Schlüsselspeicher in einer älteren Version von Java erstellt wurden. Darüber hinaus mache ich mir Gedanken darüber, wie sich eine neue Version mit einer älteren Version von Java auf unsere Kunden auswirkt, die Probleme mit der Erstinstallation hatten. nicht.

  1. Ist es sinnvoll, dass die Version von JDK für die Unterzeichnung des App negativ nur einige Kunden beeinflusst verwendet? Wenn ja, welche Faktoren könnten bestimmen, auf welchen Geräten das Problem auftritt?
  2. Would Ändern wie ich mich abmelde die binäre (aber nicht das Zertifikat) haben negative Auswirkungen auf unsere Fähigkeit, die App für die Nutzer zu aktualisieren, die derzeit nicht dieses Problem mit
  3. Wenn die Java-Version, die ich zum Signieren die APK ist nicht das Problem, was sonst könnte einen solchen Fehler verursachen?

Edit: mit diesem Problem des Benutzers Alle (oder ohne) werden mit Android 4.0 oder höher. Die App unterstützt keine früheren Versionen von Android.

Antwort

6

Nach etwas Lesung um ich einen Stich nehmen werde, können Sie den Algorithmus explizit für die JDK7 jarsigner angeben müssen ..

Fügen Sie diese build.xml Datei zum Projekt hinzu:

<presetdef name="signjar"> 
    <signjar sigalg="MD5withRSA" digestalg="SHA1" /> 
</presetdef> 

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 den gemeinsamen Algorithmus auf allen Geräten zur Verfügung stehen, die in der Xml oben angegeben ist. Aus diesem Grund scheitert es bei einigen Geräten, können andere Benutzer das gleiche zB erfahren haben: “Package not signed correctly” appearing for some users

Dieser Blog-Eintrag auch einige interessante Informationen über apk Unterzeichnung enthält: Android code signing

Ich bin jetzt sehr zuversichtlich, dass die Android explizit einstellen Der angegebene Algorithmus zum Signieren wirkt sich nicht auf Ihre Kunden aus, die bereits installiert sind, und ich erwarte, dass Ihr Problem für die anderen Kunden gelöst wird.

+0

Danke, das weiß ich zu schätzen.Ich arbeite mit vielen Geräten in meinem Beruf. Ich könnte mich selbst in diesem Bereich ein bisschen testen. Wenn ich etwas Nützliches finde, werde ich es dich wissen lassen. –

+0

Haben Sie Neuigkeiten zu diesem Thema? Ich habe genau das gleiche Problem wie Izam oben beschrieben und es wäre interessant, wenn diese Lösung helfen würde. –

+0

Dies ist eines der schlimmsten Fehler der Android Fragmentierung, die ich je gesehen habe. –

Verwandte Themen