2015-08-24 2 views
8

Während der Erstellung der signierten Version APK bin ich auf folgendes gestoßen: wenn ich signierte Apk von Android Studio (über Build ->Generate Signed APK...) mit build.gradle Datei wie folgt (nur relevante Teile):Android APK von android Studio und Konsole gebaut haben verschiedene SHA Fingerabdrücke

signingConfigs { 
    release { 
     storeFile file('/keystore/location/mykeystore.keystore') 
     storePassword 'storepassword' 
     keyAlias 'key' 
     keyPassword 'keypassword' 
    } 
} 
buildTypes { 
    release { 
     signingConfig signingConfigs.release 
    } 
} 

Das resultierende apk Fingerabdruck ist YY:YY.
Allerdings, wenn ich meine APK von der Konsole zu bauen, wie here beschrieben mit build.gradle wie folgt aus:

buildTypes { 
    release { 
    } 
} 

und unterschreiben mit dem gleichen Schlüsselspeicherdatei, die resultierende apk Fingerabdruck ist XX:XX.

Auch unterscheiden sich beide SHA-Fingerabdrücke von meinem Debug-Zertifikat SHA-Fingerabdruck. Was ist die Ursache für ein solches Verhalten?

Ich verwende buildToolsVersion 23.0.0
android Studio gradle Version 1.3.0
android sdk Tools Version 24.3.4
android Studio Version 1.3.1

+0

Sind Sie sicher, dass Sie beide Kopien in Release-Build-Variante generieren? –

+0

@Fondesa Ich bin mir ziemlich sicher, dass ich beide APKs in der Release-Build-Variante erstelle. Wenn ich in android Studio nach der Angabe von Keystore und Schlüssel baue, wähle ich 'Build Type' Release. Wenn ich von der Konsole aus arbeite, führe ich './gradlew assembleRelease' aus. – Mikhail

+0

Ihre Frage bezieht sich auf das Generieren der signierten APK in Studio vs Gradle oder auf das Generieren von Studio vs Signieren manuell? –

Antwort

1

Haben Sie den Inhalt des Schlüsselspeichers überprüfen ? Der Fingerabdruck muss mit einem der Zertifikate übereinstimmen. Es ist möglich, mehrere Zertifikate in Ihrem Keystore zu haben, möglicherweise wird beim Signieren von der Konsole eine andere verwendet? Sie können die Zertifikate überprüfen, indem Sie den folgenden Befehl ausführen:

keytool -v -Liste -keystore/path/to/Schlüsselspeicher

das Passwort für den Schlüsselspeicher eingeben und Sie sollten eine Liste der Aliase bekommen. Ich würde auch den Debug Keystore überprüfen, um sicherzustellen, dass es keine anderen Zertifikate gibt.

Die einzige andere Möglichkeit, die ich mir vorstellen kann, ist ein Pfadproblem, das die Verwendung eines anderen Schlüsselspeichers verursacht.

+0

Schlüsselspeicherpfade sind identisch. Keystore ist das Gleiche. Ich habe beide Zertifikate aus apk-s mit Studio signiert und manuell, sie verwenden den gleichen Schlüssel, aber Fingerabdruck ist immer noch anders. Vielleicht ist das, weil apk Prozess ausrichten? – Raiv

Verwandte Themen