如何在 Android Studio 中为 Flutter 应用生成 Google Play 上传密钥和密钥库?

Tho*_*hoe 6 android google-play android-studio flutter

我正在尝试将我的 Flutter 应用程序部署到 Android。根据 Flutter 文档,我们必须对我们的应用程序进行签名。第一步是创建一个upload keystore. 有两种方法可以做到这一点。

第一种方法使用Android Studio。说明说:

In the menu bar, click Build > Generate Signed Bundle/APK.
Run Code Online (Sandbox Code Playgroud)

Build这是Bumblebee 2021.1.1的屏幕截图:

在此输入图像描述

哪里Generate Signed Bundle/APK

我点击了Build > Flutter > Build App Bundle。这运行了一段时间并完成,没有错误消息。

第二种方法使用 CLI。您输入以下内容(在 Mac 或 Linux 上):

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Run Code Online (Sandbox Code Playgroud)

这促使我进行了keystore password. 那是什么?我在哪里可以得到它?

我应该upload-keystore.jks在我的主目录中看到一个文件。这是否意味着在我的项目的主目录或我的用户的主目录中?我没有看到那个文件。

接下来,我被告知

Create a file named [project]/android/key.properties that contains a reference to your keystore:

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=upload
storeFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks>
Run Code Online (Sandbox Code Playgroud)

上一步的密码是什么?密钥存储文件位于哪里?

如果这对 Android 用户来说是显而易见的,我深表歉意。我一直用 iPhone。我昨天买了第一部 Android 手机,这让我完全困惑。

Tho*_*hoe 7

谢谢@\xd7\x99\xd7\xa9\xd7\x95\xd7\x90\xd7\x95\xd7\x94\xd7\x91\xd7\x90\xd7\x95\xd7\xaa\xd7\x9a。错误在于当你跑步时

\n
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload\n
Run Code Online (Sandbox Code Playgroud)\n

它会提示您:Enter keystore password:应该说Create new keystore passwordor Enter new keystore password

\n

我创建了一个唯一的新密码swordfish并输入了它。系统提示我输入姓名和地址,然后告诉我:

\n
Warning:\nThe JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /Users/TDK/upload-keystore.jks -destkeystore /Users/TDK/upload-keystore.jks -deststoretype pkcs12".\n
Run Code Online (Sandbox Code Playgroud)\n

显然,文档中还有第二项需要更新。

\n

我运行了新命令,现在我upload-keystore.jks在用户主目录中看到一个文件(而不是在我的项目主目录中)。

\n

我将通过 Flutter 发布一张票证来进行这两项更新。

\n

  • 让我感到莫名其妙的是,在 Thomas 发布此文一年多后,Flutter 官方文档中签署应用程序的第一步仍然引用了一个不存在的菜单选项。感谢托马斯发表有关此问题的文章。 (2认同)