在 Google Play 上更新你已上架的 Flutter 应用

要在 Google Play 上更新你已上架的 Flutter 应用,你需要完成以下几个关键步骤。以下是详细的操作流程:


✅ 前提条件

  • 你已经拥有一个在 Google Play Console 中发布的应用。
  • 你拥有该应用的发布权限(即你是开发者账号的管理员或具有"发布管理"角色)。
  • 你的 Flutter 项目已集成正确的 包名(package name),且与 Google Play 上已发布的应用一致。
  • 你有用于签名 APK/AAB 的 keystore 文件(必须与最初上传的版本使用同一个 keystore)。

🔧 步骤一:在 Flutter 项目中准备新版本

1. 更新 pubspec.yaml 中的版本号(可选但推荐)

yaml 复制代码
version: 1.0.2+3
  • 格式为 versionName+versionCode(例如 1.0.2+3 表示 versionName=1.0.2,versionCode=3)。
  • Google Play 要求新版本的 versionCode 必须比当前版本大

2. 构建签名的 AAB 文件(推荐)或 APK

Google Play 强烈推荐使用 AAB(Android App Bundle)格式

生成 Keystore(如果还没有)

如果你已有 keystore,请跳过此步。切勿重新生成!否则无法更新!

bash 复制代码
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
配置 Flutter 项目的签名信息

upload-keystore.jks 放入 android/app/ 目录下(或安全位置),然后编辑:

android/key.properties(新建文件):

properties 复制代码
storePassword=你的keystore密码
keyPassword=你的key密码
keyAlias=upload
storeFile=../app/upload-keystore.jks

android/app/build.gradle 添加以下内容(在 android { 块之前):

gradle 复制代码
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    ...
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // 其他配置...
        }
    }
}

3. 构建 AAB

在项目根目录运行:

bash 复制代码
flutter build appbundle

生成的文件路径为:

复制代码
build/app/outputs/bundle/release/app-release.aab

如果你坚持用 APK(不推荐),使用 flutter build apk --release


📤 步骤二:上传到 Google Play Console

1. 登录 Google Play Console

  • 使用当初发布应用的开发者账号登录。

2. 进入你的应用

  • 在首页点击你的应用。

3. 进入「发布」>「生产」(或其他轨道,如内部测试、公开测试等)

  • 如果你之前是通过"生产"轨道发布的,建议继续在"生产"轨道更新。
  • 点击 创建新版本编辑版本

4. 上传新的 AAB 文件

  • 点击 "上传" 按钮,选择你刚生成的 app-release.aab
  • 系统会自动读取 versionCode,确保它比当前版本大。

5. 填写更新说明(Release Notes)

  • 为不同语言的用户提供更新日志(至少提供英文和中文)。

  • 例如:

    复制代码
    - 新增用户个人中心功能
    - 修复了登录闪退问题
    - 优化了启动速度

6. 审查并提交审核

  • 检查所有信息无误后,点击 保存发布(或"提交审核")。
  • Google 通常需要几小时到几天进行审核(一般 1--7 天,多数情况 1--2 天内上线)。

✅ 注意事项

  • 不要更改包名(package name),否则会被视为新应用。
  • 必须使用相同的签名密钥(keystore),否则无法更新。
  • 如果你丢失了 keystore,无法更新原应用,只能联系 Google Play 支持尝试恢复(成功率低)。
  • 建议备份 keystore 到安全的地方(如加密云盘 + 本地硬盘)。
  • 可以先在"内部测试"轨道发布,验证无误后再推送到"生产"。

🔒 安全建议

  • key.properties 加入 .gitignore,避免泄露密码。
  • 不要将 keystore 提交到 Git 仓库。

相关推荐
GitLqr12 小时前
Flutter + Unity 混合开发:用 unity_kit 实现高效的双向通信
flutter·unity3d·全栈
程序员老刘16 小时前
Flutter版本选择指南:3.47压哨发布,9月大限只剩一周 | 2026年8月
flutter·ai编程·客户端
xcyxiner21 小时前
flutter 运行到模拟器上
android·前端·flutter
末代iOS程序员华仔1 天前
iOS 语聊直播/聊天APP4.3条例被拒解决
flutter·ios·swift
恋猫de小郭1 天前
Dart 3.13 的到底改了什么?为什么很重要?有什么坑?
android·前端·flutter
xcyxiner2 天前
flutter wsl2安装记录(使用宿主机虚拟机)
前端·flutter
Kevin Coding2 天前
JsonConvert:适用于 Android、鸿蒙与 Flutter 的 JSON 转 Model 插件
android·flutter·harmonyos
iFlyCai2 天前
Flutter原理深度解析:从架构到渲染的全面剖析(二)
flutter·flutter 三棵树
里欧跑得慢3 天前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
iFlyCai3 天前
深入理解Flutter:StatefulWidget生命周期全解析(一)
flutter·dart·状态管理·statefulwidget