本文章只记录项目发布Google Play第一次上传版本的步骤,其他的前提条件请自行百度(例如:注册谷歌开发者、发布填写的各种信息)
先登录谷歌控制台
进入上传版本页面
选择你需要上传版本的项目并进入发布版本的页面,例如下图
点击选择签名密钥按钮,会出现弹窗,如下图
不要使用谷歌生成的密钥,点击 使用其他密钥
点击之后会弹窗选择,我这里用的第三个,按照步骤去完成就可以了
这里详细讲讲实现步骤
新建一个文件夹,用来存储下载、生成的文件(这样比较好操作)
下载加密公钥和PEPK工具到文件夹
去安装Java Development Kit (JDK),选择适合你操作系统的JDK版本进行下载安装即可
下载地址:www.oracle.com/cn/java/tec…
安装好Java JDk后 要配置系统环境变量
以Windows为例子,其他操作系统自行百度
打开控制面板,选择“系统和安全”,然后选择“系统”。
点击“高级系统设置”。
在“系统属性”窗口中,点击“环境变量”。
在“系统变量”部分,找到并选择Path,然后点击“编辑”。
点击“新建”并添加JDK的bin目录路径,例如C:\Program Files\Java\jdk-11\bin。
点击“确定”保存更改。
4.5 生成签名密钥
在文件夹中打开命令窗口运行命令
keytool -genkey -v -keystore D:\keystore\my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
命令解释:
keytool:这是一个 Java 工具,用于管理密钥和证书。它通常与 Java Development Kit (JDK) 一起分发。
-genkey:这个选项表示生成一个密钥对(一个公钥和一个私钥),并创建一个自签名证书。
-v:启用详细输出。执行命令时,会显示生成密钥对和证书的详细信息。
-keystore D:\keystore\my-release-key.jks:指定密钥库文件的路径和名称。
在这个例子中,密钥库文件将被创建并保存在 D:\keystore\my-release-key.jks。如果文件路径不存在,它将被创建。
-keyalg RSA:指定密钥对的算法。在这个例子中,使用 RSA 算法生成密钥对。
-keysize 2048:指定密钥的大小(以位为单位)。在这个例子中,密钥的大小是 2048 位。这是一个常见的密钥大小,提供了良好的安全性。
-validity 10000:指定证书的有效期(以天为单位)。在这个例子中,证书的有效期是 10,000 天,大约是 27 年。
-alias my-key-alias:指定密钥对的别名。别名是一个用于标识密钥对的字符串。在这个例子中,别名是 my-key-alias。
所以一般来说你需要修改的地方就是keystore和alias的值,改成你的存储路径和文件名、改成你想要的别名
生成签名密钥的命令交互
一般来说会让你输入9次,下面我详细解释:
第一次是让你输入密钥库密码的值、第二次是确认密钥库密码的值
第三次到第八次无所谓,随意输入即可,我是依次输入1-6
第九次是让你确认输入是否有误,输入y确认后即可生成密钥
提示一下:截止2024/07/25 ,成功生成了签名密钥后,密钥密码默认和密钥库密码一样
4.6 生成Google Play需要的压缩文件
就是下图这个
使用 pepk.jar 工具来导出 Android 应用的密钥库文件并加密密钥,以便上传到 Google Play 进行 App Signing。
在命令窗口执行命令
java -jar D:\keystore\pepk.jar --keystore=D:\keystore\my-release-key.jks --alias=my-key-alias --output=D:\keystore\output.zip --include-cert --rsa-aes-encryption --encryption-key-path=D:\keystore\encryption_public_key.pem
命令解释:
java -jar D:\keystore\pepk.jar:这是运行一个 Java 应用程序的命令。-jar 选项指定要运行的 JAR 文件,这里是 pepk.jar,用于导出和加密密钥。(将D:\keystore\pepk.jar改为你的pepk.jar文件路径)
--keystore=D:\keystore\my-release-key.jks:指定要使用的密钥库文件路径。在这个例子中,密钥库文件位于 D:\keystore\my-release-key.jks。(将D:\keystore\my-release-key.jks改为上一步你生成的密钥文件的路径)
--alias=my-key-alias:指定密钥库中密钥对的别名。在这个例子中,别名是 my-key-alias。(将my-key-alias改为你的密钥别名)
--output=D:\keystore\output.zip:指定输出文件的路径和名称。在这个例子中,输出文件将保存为 D:\keystore\output.zip。(将D:\keystore\output.zip改成你想要保存的地址和文件名)
--include-cert:这个选项指示 pepk.jar 包括证书链在内的密钥导出。
--rsa-aes-encryption:指定使用 RSA 和 AES 加密算法对密钥进行加密。
--encryption-key-path=D:\keystore\encryption_public_key.pem:指定加密密钥的公钥文件路径。在这个例子中,公钥文件位于 D:\keystore\encryption_public_key.pem。
(将D:\keystore\encryption_public_key.pem改为你的encryption_public_key.pem文件路径)
命令执行完成后会生成一个压缩文件,将这个压缩上传即可,下图所示
5 更新项目配置
找到你的flutter项目,找到android/app/build.gradle文件,更新配置
android {
...
// Flutter发布Android APP到Google Play 需要的配置
signingConfigs {
release {
keyAlias 'my-key-alias' // 密钥别名
keyPassword 'your-key-password' // 密钥密码
storeFile file('D:\\keystore\\my-release-key.jks') // 密钥库文件路径
storePassword 'your-store-password' // 密钥库密码
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
shrinkResources false
// 如果需要,启用 ProGuard
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
6 检查密钥信息和删除密钥
// 检查密钥信息
keytool -list -v -keystore D:\keystore\my-release-key.jks
// 删除密钥
del D:\keystore\my-release-key.jks
将D:\keystore\my-release-key.jks改成你想要查看、删除的密钥的路径即可
查看密钥信息的详细内容:
去谷歌控制台 点击左侧导航栏的发布>设置>应用签名 查看密钥是否和我们生成的密钥一样(对比证书指纹是否一致即可)
如果不一致就得重新生成密钥了(执行删除密钥的命令,然后重新执行4.5-4.6的操作)
7 构建 App Bundle
当确认过密钥信息的证书指纹与谷歌的一致后,就在你的flutter项目的终端中运行命令,生成aab文件
flutter build appbundle --release
8 上传aab文件
回到谷歌控制台,如下图位置
将生成的aab文件上传即可