为 Flutter/React-Native/Android-Nativeapp 生成 SHA-1

我正在尝试为一个 Flutter 应用程序生成 SHA-1,为 Android 工作室支持谷歌登录,但是我不知道怎么做,我看到一些帖子指示运行一个命令,但是我想我需要一个 jks 文件,而 Flutter 不能创建这样的文件。

有人能帮帮我吗?

267145 次浏览

你不会找到一个阶梯窗口视图在颤振项目,所以这里有一个解决方案。.在命令提示符中导航到 jdk 的 bin 文件夹并运行此命令

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

更改路径中的用户名

我部分同意里沙布的回答,但我们能做的是

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

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

gradlew signingReport

在麦克

./gradlew signingReport

在我的情况下,我会这样使用:

D:\flutter\flutter_app\android>gradlew signingReport

项目架构是:

enter image description here

这是最简单的方法

  1. 打开 Android Studio

  2. 开放计划

  3. 显示机器人文件夹

  4. 右键单击“ gradlew”file 并选择 Open in Terminal-

Open in Terminal

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

(基于 Venkat d. 的编辑建议如下: 在像 mac 这样基于 unix 的系统上,你需要像这样指定工作目录-。/毕业生签署报告)

Paste

  1. 按回车键并滚动到“ Variant: debug”以获得 SHA1键

Scroll to key

  1. 复制和使用,无论你需要它,祝你好运!

终点站

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

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

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

GUI Android Studio.

  1. 选择 Android/app/build.gradle file 并在右上角单击“ Open for Editing in Android Studio”

enter image description here

  1. 打开“分级”面板,双击“ SigninReport”,

Android 工作室 Gradle Tab

enter image description here

  1. 就是这样!如果你使用 Firebase-添加这两个键在那里。您应该添加两个密钥,否则,没有发布密钥,谷歌登录将无法在设备上工作。

enter image description here

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

keytool -list -v -keystore keystore_location -alias alias_name

例如:

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

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

run ./gradlew signingReport

看看这个 验证你的客户端 | Google Android API

要获得调试证书指纹:

用于 Mac 或 Linux

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

视窗

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

调试密钥存储库的默认密码是 机器人

然后,键盘工具将指纹打印到终端。

简单明了:

cd android && gradlew signinReport

所以如果你正在使用一个 android 工作室或 VS 代码,它的工作

= > 开放式终端机

= > cd 机器人

enter image description here

= > 签署报告

enter image description here

最后的输出如下图所示,选择您的 SSH 密钥在这里的位置是您的 SSH 密钥

enter image description here

在上面的输出中,图像显示在虚拟数据中我修改了一些字段,只是为了安全起见

编辑: for mac

./gradlew signingReport

对于 linux 来说:

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

祝你好运!

方法1

  • 确保你的系统中已经安装了 java。

enter image description here

方法2

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

enter image description here

我发现我需要检查谷歌播放控制台的指纹,因为我有谷歌播放托管应用程序签名。

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

注意,您可以将两者都放在 Firebase 中,但是您只需要一个。我只是添加了 SHA1和谷歌登录开始工作。

Google Play Console

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

接下来,我运行这个命令,它工作了: Keytool-list-v-keystore“% USERPROFILE% . android debug. keystore”-别名 android debug-storepass android-keypass android

中的项目正在使用哪个 Keystore

enter image description here

然后使用下面的命令

 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

做这个表彰 它在任何地方都有效

在机器人文件夹中

./gradlew signingReport

比如说

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

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

gradlew signingReport

这个工作为机器人工作室和 cmd 和通用程序

采用 MAC & amp

  • 第一步
    转到 Android 的分级属性,并添加这一行

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

enter image description here

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

报告

你会得到这样的签字报告: enter image description here

进入终端机的 android 文件夹

CD 机器人

它将为您生成 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分钟,所以要有耐心

enter image description here

对于 Android Studio 4.2和 Flutter 2.2

视窗:

打开您的项目打开 android > gradlew > 右键单击它,然后单击终端中的 Open

如下:

enter image description here

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

用终端机打开这个。

构建完成后执行此操作

D: AndroidStudioProjects YourProjectDirectory android > gradlew signinReport

然后你会看到 SHA 的钥匙

enter image description here

这是我的 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

而不是仅仅输入 gradlew。格拉德鲁要建造。为了得到 SHA-1,我们写: Terminal > 。/gradlew signinReport,我们只需要一个命令就可以构建并获得 SHA-1密钥: Terminal > 。报告

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

Gradlew 签字报告

在终端上使用这个命令,你可以在左下角找到它。

1-在 android 工作室或 vscode 终端上写下这两条命令:

cd android
gradlew signingReport

2-等一会儿,然后向上滚动。

在 linuix

cd android
./gradlew signingReport

为颤振生成 SHA-1

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

E:\<appname>\android>

2. 定位到 android 文件夹后运行以下命令

./gradlew signingReport

如果这不起作用,打开一个守护进程终端

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

daemon> signingReport

这将需要一点长的时间来生成您的第一个 SHA-1作为它 会检查所有的火力基地依赖关系,然后 超过它就会产生 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
  • 创建项目的组织单位,它是 创造它的组织,前 android.google.com
  • O 整个项目的组织所有者。其范围高于 你,例如: google.com
  • 国家短代码。例如: 对于美国是“ US”
  • 别名应用程序的标识符作为.keystore 中的单个实体 (它可以有很多)
  • 用于保护该特定别名的密码。
  • Keystore 路径,其中应该创建.keystore 文件(标准的 扩展名实际上是.ks)
  • 用于保护整个.keystore 内容的 storepass 密码。
  • 有效期在这个.keystore 中,应用程序的有效期为天数

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

尝试在终端 Windows 中编写此文件

CD 机器人

Gradlew 签字报告

对于 Mac 用户

如果在 机器人文件夹中键入 ./草签报告后出现以下错误:

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

然后按照这个过程:

  1. 运行 颤动医生
  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

你完成了,你现在可以看到钥匙了。

这个解决方案适合我在蒙特雷和安卓工作室大黄蜂工作

在终端打开 android 文件夹

右键单击 Android 文件夹 > Open In > Terminal

enter image description here 它将打开新的终端窗口 在命令下运行

bash ./gradlew signingreport

Windows Flutter 2022-23解决方案获得 SHA-1

第一个解决方案:-

  1. 在项目终端类型 cd android

  2. 现在你在 android 文件夹中,输入 ./gradlew,然后输入

    报告

如果您得到这个错误,然后尝试下一个解决方案

第二个解决方案

  1. 再次在根项目中键入 cd android
  2. 输入 ./gradlew signingReport

你一定会得到 SHA-1