flutter项目 发布Google Play

首次发布Flutter应用到Google Play的完整指南

本文将详细介绍如何首次将Flutter应用发布到Google Play商店。对于iOS开发者,也可以使用AppUploader工具来简化iOS应用的上传流程,但本文主要聚焦Android平台的操作。

准备工作

  1. 登录Google Play控制台
  2. 选择需要上传版本的项目并进入发布版本页面

签名密钥设置

重要提示:不要使用Google自动生成的密钥,选择"使用其他密钥"选项。

密钥生成步骤

  1. 新建专用文件夹存储相关文件
  2. 下载加密公钥和PEPK工具到该文件夹
  3. 安装Java Development Kit (JDK)

环境变量配置(Windows示例)

  1. 打开控制面板>系统和安全>系统
  2. 点击"高级系统设置"
  3. 在"系统属性"窗口中点击"环境变量"
  4. 在系统变量中找到Path并编辑
  5. 添加JDK的bin目录路径(如C:\Program Files\Java\jdk-11\bin)

生成签名密钥

在文件夹中打开命令窗口运行:

vbnet 复制代码
keytool -genkey -v -keystore D:\keystore\my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias

参数说明:

  • -keystore:密钥库文件路径
  • -alias:密钥别名
  • 其他参数保持默认即可

生成Google Play需要的压缩文件

使用pepk.jar工具导出密钥:

vbnet 复制代码
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

项目配置更新

修改android/app/build.gradle文件:

arduino 复制代码
android {
    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
        }
    }
}

密钥验证与管理

arduino 复制代码
// 检查密钥信息
keytool -list -v -keystore D:\keystore\my-release-key.jks

// 删除密钥(如需重新生成)
del D:\keystore\my-release-key.jks

构建与上传

  1. 生成App Bundle:
arduino 复制代码
flutter build appbundle --release
  1. 在Google Play控制台上传生成的aab文件

对于iOS开发者,AppUploader提供了类似的一站式解决方案,可以简化iOS应用的上传和发布流程。但Android开发者仍需按照上述步骤完成Google Play的发布流程。

提示:发布前请确保已满足所有Google Play的政策要求,并完成必要的应用信息和内容评级设置。

相关推荐
涡能增压发动积1 天前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o1 天前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
tyung1 天前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川1 天前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
元宝骑士1 天前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
用户31952370347711 天前
记一次 PostgreSQL WAL 日志撑爆磁盘的排查
后端
nghxni1 天前
LightESB PlatformHttp v3.0.0:JSONPath 订单转换 HTTP 路由实战
后端
武子康1 天前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端