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?

Joseph Arriaza
quelle
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

warte
quelle
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!
Igal s
quelle
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

Rishab
quelle
@ 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

Tushar Pandey
quelle
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

Tushar Nikam
quelle
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
9

Simpel und einfach:

cd android && gradlew signinReport
Code Spirit
quelle
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

Mohamed Dernoun
quelle
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.

Vishal Singh
quelle
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
RahmanRezaee
quelle
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
Newaj
quelle
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
Umer Waqas
quelle
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

Maddu Swaroop
quelle
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!

Alif Al-Gibran
quelle
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

JVE999
quelle
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

ExoticSquid
quelle
0

Flatterprojekt mit MAC & VS Code

  • Erster Schritt
    Gehen Sie zu den Android Gradle-Eigenschaften und fügen Sie diese Zeile hinzu

https://services.gradle.org/distributions/gradle-6.3-all.zip

Geben Sie hier die Bildbeschreibung ein

  • Schritt 2 Öffnen Sie das Terminal im Android-Ordner Ihrer Projekte. dann im Terminaltyp

. \ gradlew signinReport

Sie erhalten den Unterzeichnungsbericht wie folgt: Geben Sie hier die Bildbeschreibung ein

Tasnuva oshin
quelle