为Flutter应用生成SHA-1

时间:2018-08-14 16:03:17

标签: dart flutter

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

有人可以帮我吗?

20 个答案:

答案 0 :(得分:20)

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

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

更改路径中的用户名

答案 1 :(得分:17)

因此,如果您使用的是android studio或VS代码,则两者均可工作

=>打开终端

=> cd android

enter image description here

=> signingReport

enter image description here

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

enter image description here

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

答案 2 :(得分:10)

这是最简单的方法-

  1. 打开Android Studio

  2. 打开项目

  3. 显示android文件夹

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

Open in Terminal

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

Paste

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

Scroll to key

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

答案 3 :(得分:9)

简单易用:

cd android && gradlew signinReport

答案 4 :(得分:6)

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

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

gradlew signingReport

就我而言,我使用它的方式是:

D:\flutter\flutter_app\android>gradlew signingReport

项目体系结构为:

enter image description here

答案 5 :(得分:3)

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

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

enter image description here

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

enter image description here

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

enter image description here

答案 6 :(得分:3)

进入终端中的android文件夹

cd android .\gradlew 签名报告

它将为您生成 SHA1 和 SHA256

答案 7 :(得分:2)

有很多方法可以做到这一点,这是我发现的最简单的方法。

第1步:在Android Studio中打开项目。

步骤2:Click on Signing report as show in the picture 步骤3:在以下Android Studio中的签名报告中找到SHA1密钥。

希望它对您有所帮助。.

答案 8 :(得分:2)

运行此推荐 它可以在任何地方工作

在android文件夹中

./gradlew signingReport

例如

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

答案 9 :(得分:1)

1.左侧 在android studio中打开android文件夹而不是整个项目。

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

最后此过程需要一些时间,可能需要 5-10 分钟,请耐心等待

enter image description here

答案 10 :(得分:1)

首先,在以下位置检查您的项目正在使用哪个密钥库:

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

答案 11 :(得分:1)

方法1

  • 确保系统中已安装Java。

enter image description here

方法2

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

enter image description here

答案 12 :(得分:1)

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

run ./gradlew signingReport

答案 13 :(得分:1)

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

    //...

    return (
      <React.Fragment>
        <h3 className="searchMessage text-center mb-4">{searchMessage}</h3>
        <SearchCategories
          onSortByDate={onSortByDate}
          onSortByRating={onSortByRating}
          onClearFilter={onClearFilter}
        />
        <br />

        {/* look here */}

        {gifs === undefined || !gifs.length ? (
          <Spinner />
        ) : (
          <div className="row justify-content-between">
            {(isDataSorting &&
              getSortedByDate(renderedGifs).map(gif => (
                <div className="col-md-3">
                  <div className="m-2 card bg-transparent" key={gif.id}>
                    <SearchCard gif={gif} />
                  </div>
                </div>
              ))) ||
              (ratingType &&
                (getFilteredByRating(ratingType, renderedGifs).length !== 0 ? (
                  getFilteredByRating(ratingType, renderedGifs).map(gif => (
                    <div className="col-md-3">
                      <div className="m-2 card bg-transparent" key={gif.id}>
                        <SearchCard gif={gif} />
                      </div>
                    </div>
                  ))
                ) : (
                  <p className="searchNotFound">
                    Oops! None of the search results match this rating.
                  </p>
                ))) ||
              gifs.map(gif => (
                // col-3  col-lg-3
                <div className="col-md-3">
                  <div className="m-2 card bg-transparent" key={gif.id}>
                    <SearchCard gif={gif} />
                  </div>
                </div>
              ))}
          </div>
        )}
      </React.Fragment>
    );

    //...
    ```

示例:

keytool -list -v -keystore keystore_location -alias alias_name

答案 14 :(得分:0)

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

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

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

Google Play Console

答案 15 :(得分: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

答案 16 :(得分:0)

对于Linux:

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

祝你好运!

答案 17 :(得分:0)

选中此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

然后,密钥工具将指纹打印到终端。

答案 18 :(得分:0)

使用MAC和VS代码的Flutter项目

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

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

enter image description here

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

。\ gradlew登录报告

您将获得如下签名报告: enter image description here

答案 19 :(得分:0)

生成 SHA-1 密钥

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