Generieren Sie SHA-1 für die Flutter-App


75

Ich versuche, einen SHA-1 für eine Flutter-App zu generieren, damit Android Studio Google Sign in unterstützt, aber ich weiß nicht, wie das geht. Ich habe einige Beiträge gesehen, die darauf hinweisen, einen Befehl auszuführen, aber dort brauche ich Eine JKS-Datei, denke ich, und das Flattern schafft das nicht.

Könnte mir jemand helfen?


Hier ist meine Lösung für die gleiche Frage Lösung veröffentlicht
Rishab

Antworten:


149

So erhalten Sie Release- und Debug-Schlüssel: einer der einfachsten Wege (Mai 2019). Alle Aktionen befinden sich in Android Studio.

  1. Wählen Sie die Datei android / app / build.gradle aus und klicken Sie in der rechten oberen Ecke auf "Zum Bearbeiten in Android Studio öffnen".

Geben Sie hier die Bildbeschreibung ein

  1. Öffnen Sie das Gradle-Bedienfeld und doppelklicken Sie auf "SigninReport".

siehe Android Studio Gradle Tab

Geben Sie hier die Bildbeschreibung ein

  1. Das ist es! Wenn Sie Firebase verwenden, fügen Sie diese beiden Schlüssel dort hinzu. Sie sollten beide Schlüssel hinzufügen. Andernfalls funktioniert die Google-Anmeldung ohne den Freigabeschlüssel auf den Geräten nicht.

Geben Sie hier die Bildbeschreibung ein

TERMINAL - ein anderer Weg mit dem Terminal. Falls Sie den Link "Zum Bearbeiten öffnen .." nicht finden können.

Wechseln Sie zum Projektordner im Terminal.

Mac keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Windows keytool -list -v -keystore "\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android


Will es alle sha Schlüssel zur Feuerbasis hinzufügen? und nach dem Hinzufügen von sha muss die Datei google-service.json ersetzt werden?
BloodLoss

Die einzige detaillierte Lösung, die für mein Flatterprojekt funktioniert. Vielen Dank <3
sh0umik

14
Ich kann die Option "Zum Bearbeiten in Android Studio öffnen" nicht sehen
Dani

1
In diesem Fall können Sie auf dem Mac das Keytool -list -v -keystore ~ ​​/ .android / debug.keystore -alias androiddebugkey -storepass android -keypass android verwenden
bis zum

In meinem Fall war es "Gradle-Projekt importieren" für meine Flutter-App. Musste aber auf die Indizierung etwas warten.
Kokoko

93

Dies ist der einfachste Weg.

  1. Öffnen Sie Android Studio

  2. Offenes Projekt

  3. Android-Ordner anzeigen

  4. Klicken Sie mit der rechten Maustaste auf gradlew file und wählen Sie Open in Terminal -.

Im Terminal öffnen

  1. Gehen Sie zur Terminalansicht und fügen Sie - gradlew signingReport ein

(Bearbeiten basierend auf dem folgenden Vorschlag von Venkat D.: Auf Unix-basierten Systemen wie Mac müssen Sie das aktuelle Verzeichnis wie folgt angeben.

Einfügen

  1. Drücken Sie die Eingabetaste und scrollen Sie zu Variant Debug, um die SHA1-Taste zu erhalten

Scrollen Sie zur Taste

  1. Kopieren und verwenden Sie, wo immer Sie es brauchen, viel Glück!

Es braucht Zeit für die Konfiguration des Prozesses
Temirbek

18
Erwähnenswert ist, dass Sie auf Unix-basierten Systemen wie Mac das aktuelle Verzeichnis wie ./gradlew signingReport
Venkat D.

1
./gradlew unterzeichnungReport
EslamWael74

3
Sollte die akzeptierte Antwort für Flutter-Projekte sein :)
giorgio79

Perfekte Antwort für Flutter
Ananta Prasad

85

Im Flatterprojekt finden Sie keine Gradle-Fensteransicht. Hier ist eine Lösung dafür. Navigieren Sie in der Eingabeaufforderung zum Ordner bin von jdk und führen Sie diesen Befehl aus

keytool -list -v -keystore "C:\Users\yourusernamehere\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Ändern Sie den Benutzernamen im Pfad


@ Mattias das war einer der besten Kommentare, die ich je hier gesehen habe!
Marco Alves

2
für mac Befehl ist keytool -list -v -keystore ~ ​​/ .android / debug.keystore -alias androiddebugkey -storepass android -keypass android
warte

Keine der Antworten hat funktioniert, das hat funktioniert
Taha Gorme

45

Ich stimme der Antwort von Rishab teilweise zu, aber was wir tun können, ist

und dieser Ansatz funktioniert mit allen flutter/React-native/Android....

Navigieren Sie zum Android-Ordner innerhalb des Projekts. Dort befindet sich eine Gradlew-Datei. so können wir dies wie folgt verwenden:

gradlew signingReport 

in Mac

./gradlew signingReport

in meinem Fall benutze ich es wie:

D:\flutter\flutter_app\android>gradlew signingReport

Projektarchitektur ist:

Geben Sie hier die Bildbeschreibung ein


2
Mit Abstand einfachste Lösung! Sobald Sie ./gradlew signinReport eingegeben haben, wird die SH1-Taste aufgefordert
G.Busato

1
- je einfacher
desto

18

Wenn Sie also ein Android Studio oder VS-Code verwenden, funktionieren beide

=> Terminal öffnen

=> CD Android

Geben Sie hier die Bildbeschreibung ein

=> SigningReport

Geben Sie hier die Bildbeschreibung ein

und die endgültige Ausgabe wie diese, wie im Bild unten angegeben, ist die Auswahl Ihres SSH-Schlüssels an der Stelle hier, an der Sie Ihren SSH-Schlüssel eingeben

Geben Sie hier die Bildbeschreibung ein

In der obigen Ausgabe wird das Bild in Dummy-Daten angezeigt. Ich ändere einige der Felder nur aus Sicherheitsgründen


Möglicherweise müssen Sie es als ". \ Gradlew signinReport" eingeben, wenn der Fehler "gradlew wird nicht als Name eines Cmdlets erkannt ..." angezeigt wird
J. Saw

1
@ J.Saw Danke, dass du mich aktualisiert hast :)
Tushar Nikam


4

Sie können dasselbe unter VSCode tun, den Ordner öffnen, der gradlew für Linux und gradlew.bat für Windows enthält, und ./gradlew signingReport für Linux ausführen und gradlew signingReport für Windows ausführen

Führen Sie ./gradlew signingReport aus


3

Überprüfen Sie dies Authentifizierung Ihres Kunden | Google APIs für Android

So erhalten Sie den Fingerabdruck des Debug-Zertifikats:

für Mac oder Linux

keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore

für Windows

keytool -list -v \ -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

Das Standardkennwort für den Debug-Keystore lautet Android .

Das Keytool druckt dann den Fingerabdruck auf das Terminal.


2

Führen Sie dieses Commend aus, es funktioniert überall

im Android-Ordner

./gradlew signingReport

zum Beispiel

PS E:\flutterProject\flutter_app\android> ./gradlew signingReport

1

Sie können es sogar vom Terminal aus generieren. Folgendes gilt für den Freigabemodus:

keytool -list -v -keystore keystore_location -alias alias_name

Beispiel:

keytool -list -v -keystore /home/user/key.jks -alias alias_name

1

Überprüfen Sie zunächst, in welchem ​​Keystore Ihr Projekt verwendet wird

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie dann den folgenden Befehl

 keytool -list -v -alias mstoreappsemoAlias -keystore  fluxstorepro/android/app/mstoresemoFile.keystore    

Wenn Sie einen Hash-Schlüssel für Facebook generieren möchten, verwenden Sie den folgenden Befehl

 keytool -exportcert -alias mstoreappsemoAlias -keystore fluxstorepro/android/app/mstoresemoFile.keystore | openssl sha1 -binary | openssl base64

1

Methode 1

  • Stellen Sie sicher, dass Java auf Ihrem System installiert ist.

Geben Sie hier die Bildbeschreibung ein

Methode 2

  • Ändern Sie über die Befehlszeile Ihren Benutzernamen und führen Sie den folgenden Befehl aus
keytool -list -v -alias androiddebugkey -keystore C:\Users\YOURUSERNAME\.android\debug.keystore
  • Das Standardkennwort ist Android

Geben Sie hier die Bildbeschreibung ein


0

für Linux:

  1. Wenn Sie vscode verwenden, können Sie mit der rechten Maustaste auf gradlew-> copypath klicken (in meinem Fall: /home/alif/Documents/project/flutter/fit_app/android/gradlew )
  2. Öffnen Sie Ihr Terminal und fügen Sie es ein. Vergessen Sie nicht, / gradlew zu löschen
  3. Geben Sie ein .../android gradlew signinReportund drücken Sie die Eingabetaste

Viel Glück!


0

Ich habe festgestellt, dass ich den Fingerabdruck in der Google Play Console überprüfen muss, da ich die Signatur der von Google Play verwalteten App habe.

Die von gradlew zur Verfügung gestellten haben bei mir nicht funktioniert.

Beachten Sie, dass Sie beide in Firebase einfügen können, aber nur eine benötigen. Ich habe gerade SHA1 hinzugefügt und Google Sign In hat begonnen zu arbeiten.

Google Play Console


0

Persönlich ging ich zum Terminal und navigierte zu C: \ Programme \ Java \ jdk-14.0.2 \ bin (navigiere zu deinem Java-Bin-Ordner).

Als nächstes habe ich diesen Befehl ausgeführt und es hat funktioniert: keytool -list -v -keystore "% USERPROFILE% .android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.