为 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
项目架构是:
这是最简单的方法-
打开Android工作室
打开项目
显示 android 文件夹
右键单击“gradlew”文件并select在终端中打开 -
- 进入终端查看并粘贴:
gradlew signingReport
(根据下面的 Venkat D. 建议编辑:在基于 unix 的系统上,例如 mac,您需要像这样指定当前目录 - ./gradlew signingReport)
- 按回车键并滚动到“变体:调试”以获取 SHA1 密钥
- 复制并在任何需要的地方使用,祝你好运!
终端
转到终端中的项目文件夹。
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.
- Select android/app/build.gradle 文件并在右上角单击“在 Android Studio 中打开以进行编辑”
- 打开 Gradle 面板并双击“SigninReport”,
见Android studio Gradle Tab
- 就是这样!如果您使用 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:
- 如果您使用的是 vscode,您可以右键单击 gradlew->copypath(在我的例子中:
/home/alif/Documents/project/flutter/fit_app/android/gradlew
)
- 打开你的终端并粘贴,别忘了删除/gradlew
- 输入
.../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.
然后按照这个流程:
- 运行 flutter doctor -v
- 现在在 Android 工具链中 复制 Java 二进制文件后的位置:。它将是这样的:
/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
- 粘贴到项目的根目录,并将上面位置末尾的java替换为
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
。
大功告成,现在您将看到密钥。
如果对您有帮助,请点个赞,这样可以帮助到最多的人。
我正在尝试为 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
项目架构是:
这是最简单的方法-
打开Android工作室
打开项目
显示 android 文件夹
右键单击“gradlew”文件并select在终端中打开 -
- 进入终端查看并粘贴:
gradlew signingReport
(根据下面的 Venkat D. 建议编辑:在基于 unix 的系统上,例如 mac,您需要像这样指定当前目录 - ./gradlew signingReport)
- 按回车键并滚动到“变体:调试”以获取 SHA1 密钥
- 复制并在任何需要的地方使用,祝你好运!
终端
转到终端中的项目文件夹。
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.
- Select android/app/build.gradle 文件并在右上角单击“在 Android Studio 中打开以进行编辑”
- 打开 Gradle 面板并双击“SigninReport”,
见Android studio Gradle Tab
- 就是这样!如果您使用 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:
- 如果您使用的是 vscode,您可以右键单击 gradlew->copypath(在我的例子中:
/home/alif/Documents/project/flutter/fit_app/android/gradlew
) - 打开你的终端并粘贴,别忘了删除/gradlew
- 输入
.../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.
然后按照这个流程:
- 运行 flutter doctor -v
- 现在在 Android 工具链中 复制 Java 二进制文件后的位置:。它将是这样的:
/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
- 粘贴到项目的根目录,并将上面位置末尾的java替换为
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
。
大功告成,现在您将看到密钥。
如果对您有帮助,请点个赞,这样可以帮助到最多的人。