Wie Sie sich eine APK mit mehr als einem Zertifikat?
Wie Signiere ich eine APK mit mehr als einem Zertifikat, so dass ich können dies tun, wenn ich veröffentlichen Sie Sie auf dem Android-Markt:
Version 1.0 => Signiert mit Zertifikat
Version 2.0 => Signiert mit Zertifikat A & B
Version 3.0 => Signiert mit Zertifikat B
Den Android Market, gibt mir einige Hoffnung, aber ich bin mir nicht sicher, was Sie machen es, wenn ich den upload mit einem anderen Zeichen-Zertifikat es gibt mir diese Meldung:
"Die apk-unterzeichnet werden muss, die mit mindestens einem Zertifikat gemeinsam mit der vorherigen version."
Motiv:
Ich habe veröffentlicht, eine app auf den Markt, mit der Android-Signing-Tool als Teil von MotoDev Studio for android. Das problem ist, dass es behandelt die Schlüssel selbst und es gibt keine Möglichkeit (dokumentiert), um Sie zu bekommen. Ich will es ändern, verwenden Sie eine keystore und das Zertifikat, dass ich mehr Kontrolle und kann sogar, wenn ich nicht verwenden MotoDev Studio mehr. Auch scheint es, dass MotoDev Studio sperren, Sie aus neuen Funktionen wie zum Beispiel freigegebene Bibliotheken.
UPDATE 5/3/2011:
Sie wurden wirklich sehr schnell und prompt zu aktualisieren MotoDev Studio, aber es scheint, wie ich glaube, dass Google sollte immer noch eine Arbeit um für diejenigen, die wollen, ändern Sie die Zertifikate Ihrer Anwendungen. Aktualisierung der Anwendung für alle dasselbe Zertifikat verwenden, neue entwickeln im Laufe der Zeit, und ggf. ein neues zu erstellen, so dass Sie die hand der Unterstützung und dem Vertrieb Ihrer Anwendung zu anderen.
InformationsquelleAutor der Frage ddcruver | 2010-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, melden Sie eine APK-mehr als einmal, einfach so.
Aber beachten Sie, dass Google Play akzeptiert keine APKs mit mehreren Unterschriften.
zB. Sie können Zeichen einer APK von der Befehlszeile aus mithilfe von
jarsigner
etwa so:jarsigner -keystore original-keystore my-app-unsigned.apk key-alias
aliasDann wiederholen Sie dies mit dem zweiten Schlüssel:
jarsigner -keystore new-signing-keystore my-app-unsigned.apk key-alias
Vergessen Sie nicht, führen Sie zipalign danach:
zipalign -v 4 my-app-unsigned.apk my-app.apk
Ich nur re-Lesen Sie den Teil über MotoDev studio. In diesem Fall können Sie nur signieren der APK zuerst mit MotoDev wie gewohnt und melden Sie sich dann mit Ihren neuen Schlüssel auf der Kommandozeile wie oben.
InformationsquelleAutor der Antwort Christopher Orr
Ich war wirklich froh zu sehen, in diesem post, bis ich sah, @ddcruver Kommentar (2010-06-05) und @cistearns' Kommentar (2011-03-01).
Allerdings gibt es eine wichtige Frage der Sicherheit mit dem Wechsel der Methode, die Sie beschreiben (wenn es funktionieren würden, wie man es erwarten würde), so dass es ziemlich trivial für Angreifer ersetzen Sie Ihre app, wenn Sie bekommen können, um Ihre Nutzer zu installieren, die Ihre Sachen:
Normalerweise, wenn ein Angreifer versucht, zu ersetzen, etwas, das installieren verweigern würde, es sei denn, die originalen entfernt ist, an welcher Stelle die Daten werden gelöscht.
Auf der anderen Seite gibt es noch mehrere gültige use-cases für den übergang ein Schlüssel/Zertifikat: Schlüssel-Erneuerung, übergabe an einen anderen Entwickler, etc.
Dies könnte getan werden, mehr sicher durch Ermächtigung der übergang auf einen neuen Schlüssel mit dem alten Schlüssel. Finden Sie die Problem im Android-Projekt.
InformationsquelleAutor der Antwort James Haigh
Ich hatte das problem heute und hier ist was ich getan habe:
keytool -importkeystore -srckeystore motodev.keystore -srckeystoretype JCEKS -destkeystore android.keystore -destkeystoretype JKS
Nun den android.keystore-Datei verwendet werden, in das Google-Eclipse-Plug-ins zu exportieren Sie Ihre Anwendung, um eine signierte APK -
InformationsquelleAutor der Antwort