为Flutter应用生成SHA-1


75

我正在尝试为Flutter应用程序生成SHA-1,用于Android Studio以支持Google登录,但是我不知道该怎么做,我看到了一些指示运行命令的帖子,但是我需要我猜是jks文件,但flutter不会创建该文件。

有人可以帮我吗?


这是我为相同问题的解决
Rishab

Answers:


149

如何获取Release和Debug密钥:另一种最简单的方法(2019年5月)。所有动作都在Android Studio内部。

  1. 选择android / app / build.gradle文件,然后在右上角单击“在Android Studio中打开以进行编辑”

在此处输入图片说明

  1. 打开Gradle面板,然后双击“ SigninReport”,

查看Android Studio Gradle标签

在此处输入图片说明

  1. 而已!如果您使用Firebase,请在此处添加这两个键。您应该同时添加两个密钥,否则,如果没有释放密钥,则Google登录将无法在设备上运行。

在此处输入图片说明

终端-终端的另一种方式。如果找不到“打开以供编辑..”链接。

转到终端中的项目文件夹。

苹果电脑 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

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


是否要将所有sha键添加到firebase?在添加sha之后,是否需要替换google-service.json文件?
BloodLoss

适用于我的flutter项目的唯一详细解决方案。非常感谢<3
sh0umik

14
我看不到“在Android Studio中打开以进行编辑”选项
Dani

1
在这种情况下,您可以在Mac上使用keytool -list -v -keystore〜/ .android / debug.keystore -alias androiddebugkey -storepass android
-keypass

在我的情况下,这是我的Flutter应用程序的“导入Gradle项目”。但是不得不等待索引。
kokoko

93

这是最简单的方法-

  1. 开启Android Studio

  2. 公开项目

  3. 显示android文件夹

  4. 右键单击gradlew文件,然后选择在终端中打开-

在终端中打开

  1. 转到终端视图并粘贴-gradlew signingReport

(根据以下Venkat D.建议进行编辑:在基于mac的系统(例如mac)上,您需要指定当前目录,例如-./gradlew signingReport)

糊

  1. 按Enter键并滚动到Variant debug以获取SHA1键

滚动到关键

  1. 复制并在需要的地方使用,祝您好运!

这需要花费一些时间来配置过程
temirbek

18
值得一提的是,在基于unix的系统(如mac)上,您需要指定当前目录,如./gradlew signingReport
Venkat

1
./gradlew signingReport
EslamWael74 '19

3
应该是Flutter项目的公认解决方案:)
giorgio79年

Flutter的完美答案
Ananta Prasad

85

您不会在flutter项目中找到gradle窗口视图,因此这是一个解决方案。.在命令提示符下,导航到jdk的bin文件夹并运行此命令

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

更改路径中的用户名


@Mattias是我在这里看到的最好的评论之一!
马可·阿尔维斯

2
对于Mac命令是keytool -list -v -keystore〜/ .android / debug.keystore -alias androiddebugkey -storepass android
-keypass

没有答案的努力这个工作
塔哈Gorme

45

我部分同意Rishab的回答,但是我们能做的是

这种方法适用于所有flutter/React-native/Android...

导航到项目内的Android文件夹,有gradlew文件。所以我们可以这样使用:

gradlew signingReport 

在Mac中

./gradlew signingReport

就我而言,我使用它像:

D:\flutter\flutter_app\android>gradlew signingReport

项目架构是:

在此处输入图片说明


2
迄今为止最简单的解决方案!输入./gradlew signinReport后,将提示您输入SH1键
G.Busato 19/12/23

1
-越简单越好<3
Dean Villamia'5

18

因此,如果您使用的是android studio或VS代码,那么两者都可以工作

=>打开终端

=> CD的Android

在此处输入图片说明

=>签署报告

在此处输入图片说明

下图所示的最终输出选择了您所在位置的SSH密钥,即您的SSH密钥

在此处输入图片说明

在上面的输出中,图像显示在虚拟数据中,出于安全考虑,我更改了某些字段


如果您收到“ gradlew无法识别为cmdlet的名称...”错误,则可能需要将其键入为“。\ gradlew signinReport”
J. Saw

1
@ J.Saw感谢您更新我的信息:)
Tushar Nikam '20年


4

您可以在VSCode上执行相同的操作,打开包含针对Linux的gradlew和针对Windows的gradlew.bat的文件夹,并针对Linux运行./gradlew signingReport并针对Windows运行gradlew signingReport

运行./gradlew signingReport



2

运行此表彰它可以在任何地方工作

在android文件夹中

./gradlew signingReport

例如

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

1

您甚至可以从终端生成它。以下是发布模式的信息:

keytool -list -v -keystore keystore_location -alias alias_name

例如:

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

1

首先,检查您的项目正在使用哪个Keystore

在此处输入图片说明

然后使用以下命令

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

如果您想为Facebook生成哈希键,请使用以下命令

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

1

方法1

  • 确保系统中已安装Java。

在此处输入图片说明

方法2

  • 使用命令行更改您的用户名并运行以下命令
keytool -list -v -alias androiddebugkey -keystore C:\Users\YOURUSERNAME\.android\debug.keystore
  • 默认密码是android

在此处输入图片说明


0

对于Linux:

  1. 如果您使用的是vscode,则可以右键单击gradlew-> copypath(在我的情况下: /home/alif/Documents/project/flutter/fit_app/android/gradlew
  2. 打开您的终端并粘贴,不要忘记删除/ gradlew
  3. 输入.../android gradlew signinReport并按Enter

祝好运!


0

我发现我需要在Google Play控制台中检查指纹,因为我拥有Google Play托管的应用签名。

gradlew提供的选项对我不起作用。

请注意,您可以将两者都放在Firebase中,但只需要一个即可。我刚刚添加了SHA1,并且Google登录开始工作。

Google Play控制台


0

我个人去终端,然后导航到C:\ Program Files \ Java \ jdk-14.0.2 \ bin(导航到您的Java bin文件夹)。

接下来,我运行了此命令,它起作用了:keytool -list -v -keystore“%USERPROFILE%.android \ debug.keystore” -alias androiddebugkey -storepass android -keypass android


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.