为 Flutter/React-Native/Android-Native 个应用生成 SHA-1

Generate SHA-1 for Flutter/React-Native/Android-Native app

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

有人可以帮我吗?

你不会在 flutter 项目中找到 gradle window 视图,所以这是一个解决方案。在命令提示符下导航到 jdk 和 运行 这个命令

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

更改路径中的用户名

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

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

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

gradlew signingReport 

在Mac

./gradlew signingReport

在我的例子中,我使用它:

D:\flutter\flutter_app\android>gradlew signingReport

项目架构是:

这是最简单的方法-

  1. 打开Android工作室

  2. 打开项目

  3. 显示 android 文件夹

  4. 右键单击“gradlew”文件并select在终端中打开 -

  1. 进入终端查看并粘贴:gradlew signingReport

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

  1. 按回车键并滚动到“变体:调试”以获取 SHA1 密钥

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

终端

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

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

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

GUI Android Studio.

  1. Select android/app/build.gradle 文件并在右上角单击“在 Android Studio 中打开以进行编辑”

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

Android studio Gradle Tab

  1. 就是这样!如果您使用 Firebase - 在此处添加这两个键。您应该添加这两个密钥,否则,如果没有发布密钥,Google 登录将无法在设备上运行。

您甚至可以从终端生成它。以下为发布模式:

keytool -list -v -keystore keystore_location -alias alias_name

示例:

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

您可以在 VSCode 上执行相同的操作,打开包含 gradlew for linux 和 gradlew.bat for windows and 运行 [=10] 的文件夹=] Window 和 运行 gradlew signingReport Linux

勾选这个Authenticating Your Client  |  Google APIs for Android

获取调试证书指纹:

对于Mac或Linux

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

对于Windows

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

调试密钥库的默认密码是android

keytool 然后将指纹打印到终端。

简单易行:

cd android && gradlew signinReport

因此,如果您使用的是 android 工作室或 VS 代码,它们都可以工作

=> 打开终端

=> cd android

=> 签名报告

最终输出如下图所示,在此处选择您的 SSH 密钥是您的 SSH 密钥

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

编辑:mac

./gradlew signingReport

对于 linux:

  1. 如果您使用的是 vscode,您可以右键单击 gradlew->copypath(在我的例子中:/home/alif/Documents/project/flutter/fit_app/android/gradlew
  2. 打开你的终端并粘贴,别忘了删除/gradlew
  3. 输入.../android gradlew signinReport并回车

祝你好运!

方法一

  • 确保 java 安装在您的系统中。

方法二

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

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

gradlew 提供的那些对我不起作用。

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

就个人而言,我去了终端然后导航到 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

首先,检查您的项目在

中使用了哪个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

运行这个赞 它在任何地方都有效

在 android 文件夹中

./gradlew signingReport

例如

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

有时你不需要添加 ./ 只是

gradlew signingReport

这项工作适用于 android studio、cmd 和 commond prome

Flutter Project Using MAC & VS Code

  • 第一步
    转到 Android Gradle 属性并添加此行

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

  • 第二步 在项目的 android 文件夹中打开终端。 然后在终端输入

.\gradlew signinReport

您将得到这样的签名报告:

转到终端中的 android 文件夹

cd android .\gradlew signingReport

它将为您生成 SHA1 和 SHA256

生成 SHA-1 密钥

在终端中键入 cd android 并更改路径 然后键入 ./gradlew signingReport

1.第一种方法 只是 运行 下面的命令

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

2。第二种方法

1.左边 在 android 工作室中打开 android 文件夹而不是整个项目。

2。右侧 打开文件android/app/Tasks/anroid/signingReport

最终这个过程需要一些时间,可能需要 5-10 分钟,所以请耐心等待

对于 Android Studio 4.2 和 Flutter 2.2

Windows:

打开你的项目 open android > gradlew > 右键单击​​它并单击 open in terminal

如下所示:

我的项目目录:D:\AndroidStudioProjects\WowTalentNew\android>gradlew

在终端中打开它。

构建完成后执行这个

D:\AndroidStudioProjects\YourProjectDirectory\android>gradlew signinReport

之后您将看到 SHA 密钥

这是我的完整 CMD 屏幕

Microsoft Windows [Version 10.0.19043.985]
(c) Microsoft Corporation. All rights reserved.

D:\AndroidStudioProjects\WowTalentNew\android>gradlew

> Configure project :app
WARNING: The option setting 'android.enableR8=true' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8

> Task :help

Welcome to Gradle 6.3.

To run a build, run gradlew <task> ...

To see a list of available tasks, run gradlew tasks

To see a list of command-line options, run gradlew --help

To see more detail about a task, run gradlew help --task <task>

For troubleshooting, visit https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 
7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See 

BUILD SUCCESSFUL in 6s
1 actionable task: 1 executed
D:\AndroidStudioProjects\WowTalentNew\android>gradlew signinReport

> Configure project :app
WARNING: The option setting 'android.enableR8=true' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8

> Task :app:signingReport
Variant: debugAndroidTest
Config: debug
Store: C:\Users\apoor\.android\debug.keystore
Alias: AndroidDebugKey
MD5: 2A:97:87:DF:E1:58:D4:9D:E6:65:18:********
SHA1: 4E:0E:D0:F7:68:51:80:47:3E:D1:**************************
SHA-256: 
17:83:42:F4:0E:59:C5:5B:1E********************************************************
BC:79
Valid until: Saturday, November 26, 2050

在 Linux 中,我们不只是键入 gradlew,而是编写 ./gradlew 来构建。为了获得 SHA-1,我们编写:Terminal> ./gradlew signinReport 我们可以只用一个命令构建并获取 SHA-1 密钥:Terminal> ./gradlew signinReport

我希望它清除一切,编码愉快!

gradlew signingReport

在左下角的终端上使用此命令。

1-在 android 工作室或 vscode 终端中写入这两个命令:

cd android
gradlew signingReport

2-稍等一下,然后向上滚动。

为 Flutter 生成 SHA-1

1.在控制台中找到您的 android 目录

E:\<appname>\android>

2。定位到 android 文件夹后 运行 此命令

./gradlew signingReport

如果这不起作用并打开守护进程终端

1.在守护程序终端中键入 signingReport

daemon> signingReport

This would be taking a bit long time to generate your first SHA-1 as it would be checking for all the firebase dependencies and after that over it generate the SHA-1

您可以在终端中使用一根线

echo y | keytool -genkeypair -dname "cn=Chris, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/android.keystore -storepass ab987c -validity 20000
  • dname 是应用程序在 .keystore 中的唯一标识符
  • cn 生成的个人或组织的全名 .keystore
  • ou 创建项目的组织单位,它是 创建它的组织。前任。 android.google.com
  • o 整个项目的组织所有者。它的范围比 欧。例如:google.com
  • c 国家短代码。例如:美国是“US”
  • 应用程序的别名标识符作为 .keystore 中的单个实体 (它可以有很多)
  • keypass 用于保护特定别名的密码。
  • keystore 创建 .keystore 文件的路径(标准 扩展名实际上是 .ks)
  • storepass 用于保护整个 .keystore 内容的密码。
  • validity 应用程序对这个 .keystore 有效的天数

如果您有密钥库文件,那么在密钥库文件位置 运行 keytool -list -v -keystore fileName.jks -alias upload -storepass password -keypass password...

尝试在终端中写入 - 对于 Windows

cd android

gradlew signingReport

对于 Mac 用户

如果在 android 文件夹中键入 ./gralew signingReport 后出现此错误:

The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

然后按照这个流程:

  1. 运行 flutter doctor -v
  2. 现在在 Android 工具链中 复制 Java 二进制文件后的位置:。它将是这样的: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
  3. 粘贴到项目的根目录,并将上面位置末尾的java替换为keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

大功告成,现在您将看到密钥。

如果对您有帮助,请点个赞,这样可以帮助到最多的人。