Android Signed APK wird beim Versuch, in die Produktion hochzuladen, als Unsigned APK angezeigt

70

Ich habe meine APK in Android Studio 2.3 signiert (build-> signierte APK generieren). Wenn ich versuche, es in den Google Play Store hochzuladen, wird der Fehler angezeigt, dass ich nicht signierte APK hochgeladen habe. Könnte jemand antworten, warum es passiert und wie man es löst?

Nani Kalyan
quelle
Könnten Sie die Fehlermeldung senden?
Mehran Zamani
4
Es wurde erfolgreich hochgeladen, als ich beim Generieren der signierten APK V1 (Jar Signature) anstelle von V2 (Full APK Signature) aktiviert habe.
Nani Kalyan

Antworten:

90

Es wurde erfolgreich hochgeladen, als ich beim Generieren der signierten APK in Android Studio 2.3 V1 (Jar Signature) anstelle von V2 (Full APK Signature) aktiviert habe

Nani Kalyan
quelle
8
Ich hatte beide Kontrollkästchen aktiviert: Jar Signature und Full APK Signature. Diese Antwort lieferte den notwendigen Einblick.
Steven H
2
Warum nur V1 prüfen, wenn V2 zum Signieren verfügbar ist? Sie sollten sowohl V1 als auch V2 ausgewählt haben und die Antwort von Piyush Kukadiyas akzeptieren.
Filipst
Ich werde verdammt sein, es hat funktioniert! Aber wieso? (Ich verwende AS 3.1.3).
SMBiggs
77

Android 7.0 führt APK Signature Scheme v2 ein, ein neues App-Signaturschema, das schnellere App-Installationszeiten und mehr Schutz vor unbefugten Änderungen an APK-Dateien bietet.

Beim Generieren von signierten apk gibt es zwei Kontrollkästchen.

  1. V1 (Jar Signature)
  2. V2 (Full apk Signature)

Wir haben drei Möglichkeiten:

  1. Wählen Sie V1 (für ältere Versionen der Signatur) - apk wird erfolgreich hochgeladen

  2. Wählen Sie V2 (für eine neuere Version der Signatur) - Bitte beachten Sie, dass die alleinige Auswahl nicht funktioniert.

  3. wähle V1 und V2 (für ältere und neuere Versionen) - apk wird erfolgreich hochgeladen

Warum funktioniert die Auswahl von V2 allein nicht?

Weil APK Signature Scheme v2 in Android 7.0 (Nougat) eingeführt wurde. Um eine APK auf Android 6.0 (Marshmallow) und älteren Geräten installierbar zu machen, sollte die APK mit der JAR-Signatur signiert werden, bevor sie mit dem v2-Schema signiert wird.

Weitere Informationen finden Sie hier

Piyush Kukadiya
quelle
Vielen Dank für die Erklärung, aber warum beschwert sich Google, wenn ich sowohl V1 als auch V2 überprüft habe?
SMBiggs
@ScottBiggs Was ist ihre Beschwerde, wenn Sie beide überprüft haben?
isJulian00
21

Signiert für v1 und v2 . Es wird erfolgreich hochgeladen.

Ahmad
quelle
9

Dies liegt daran, dass Sie beim Erstellen der Version nur die v2-Signatur verwenden.

Was wird also in v1 und v2 erwähnt?

v1 ist der Standard-Signaturmechanismus und v2 ist der neueste hinzugefügte Mechanismus, der viel schneller überprüft. Dies bedeutet, dass v2-signierte APKs unter Android Nougat (Android 7.0, API Level 24) und neueren Versionen etwas schneller installiert / aktualisiert werden.

Was solltest du also tun?

Wenn Sie die App ohne Änderungen signieren möchten

Überprüfen Sie v1 (nur jar Signatur), was die Standardeinstellung ist.

Wenn Sie die neueste Signatur und Unterstützung für 7.x-Versionen wünschen

Überprüfen Sie v2 (Full Apk Signature), wodurch sich auch die App-Größe verringert.

Wenn Sie möchten, dass die App kleiner ist, schneller installiert werden kann und mit allen Android-Versionen kompatibel ist.

Überprüfen Sie sowohl v1 als auch v2.

PS: Gilt nur zum Signieren von Apps mit Studio, außer zum Erstellen von Pipes.

Für weitere Referenzen Link

Sanoop Surendran
quelle
4

So signieren Sie APK mit V2

https://developer.android.com/studio/command-line/apksigner.html

Schritt 1) ​​Wählen Sie in Android Studio Ansicht> Tool Windows> Terminal

    gradlew assembleRelease

2) Richten Sie die nicht signierte APK mit zipalign aus:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

3) Signieren Sie Ihre APK mit Ihrem privaten Schlüssel mit apksigner:

apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk

Hinweis: Um das Apksigner-Tool verwenden zu können, muss Version 24.0.3 oder höher der Android SDK Build Tools installiert sein. Sie können dieses Paket mit dem SDK-Manager aktualisieren.

4) Stellen Sie sicher, dass Ihre APK signiert ist:

apksigner verify my-app-release.apk

Hinweis: Schritt 2 bis 4 Führen Sie die Eingabeaufforderung G aus: \ AndroidStudio \ Sdk \ build-tools \ 25.0.0 \

Piyush Patel
quelle
Sir, ich habe oben versucht, aber ich habe unten Fehler in --- Sie haben eine APK hochgeladen, die nicht zip-ausgerichtet ist. Sie müssen ein Zip-Align-Tool auf Ihrer APK ausführen und es erneut hochladen.
Kapil Soni
@Kapilsoni der Schritt 2 fehlt. Sie müssen zu SDK gehen -> Tools erstellen -> 30.0.2 Dort finden Sie zipalign
Piyush Patel
Sir, aber wenn ich Build über das obige Verfahren generiert habe, wurden Build-Fehler nicht installiert. Ich Gerät
Kapil Soni
Generieren Sie zuerst einen Build und dann, nachdem Sie diese Schritte auf APK angewendet haben und signiert werden müssen
Piyush Patel
Ja, Sir, fertig, aber ich habe ein anderes Problem in der Spielekonsole. Sie haben eine APK hochgeladen, die nicht mit dem Upload-Zertifikat signiert ist. Sie müssen dasselbe Zertifikat verwenden. Das Upload-Zertifikat hat einen Fingerabdruck:
Kapil soni
1

Wenn Sie dies erreichen, verwenden Sie Android Studio 3.3 und der Fehler tritt weiterhin auf, unabhängig davon, ob Sie die Kontrollkästchen Signatur aktivieren oder nicht. Versuchen Sie, den App- / Build-Ordner manuell zu löschen.

Quelle: https://stackoverflow.com/a/54213942/787511

D. Rosado
quelle
0

Es ist ein Problem von Google und wurde vor zwei Tagen auf dieser Seite veröffentlicht

Mehran Zamani
quelle
Upload fehlgeschlagen Sie haben eine nicht signierte APK hochgeladen. Sie müssen eine signierte APK erstellen.
Nani Kalyan
0

Wählen Sie gemäß dem beigefügten Screenshot sowohl V1 (Jar Signature) als auch V2 (Full APK Signature). Es wird klappen.

Geben Sie hier die Bildbeschreibung ein

Sudheer Kumar Palchuri
quelle