码造社 | mazaoshe

码造社 | mazaoshe

首页 / 技术与开发 / Flutter 打包发布 APK 全流程详解(含签名与版本配置)

Flutter 打包发布 APK 全流程详解(含签名与版本配置)

发布于 本文阅读量:
Flutter 打包发布 APK 全流程详解(含签名与版本配置)
文章目录

本文记录了 Flutter 项目打包发布 Android APK 的完整流程,包含签名、包名、版本号、图标、应用名等常见配置,适合开发者查阅和实操。

1. 替换 Android 应用图标

将你的应用图标分别放置到 android/app/src/main/res/ 目录下对应的 mipmap 文件夹中,覆盖原有的 ic_launcher.png 文件。

Android 图标替换示意图


2. 修改应用名称

编辑 android/app/src/main/AndroidManifest.xml,设置 android:label 属性为你的应用名称:

<application
    android:label="你的APP名称"
    android:name="${applicationName}"
    android:icon="@mipmap/ic_launcher">
    <activity ... />
</application>

3. 设置应用版本号

在项目根目录的 pubspec.yaml 文件中,找到 version: 字段:

version: 1.0.0+1
  • 1.0.0 为版本号,+1 为构建号。每次发布新版本时,建议递增构建号。

4. 生成签名文件(Keystore)

在终端执行以下命令生成签名文件:

keytool -genkey -v \
  -keystore ~/upload-keystore.jks \
  -keyalg RSA \
  -keysize 2048 \
  -validity 10000 \
  -alias upload
  • ~/upload-keystore.jks 可自定义路径和文件名,后续配置需保持一致。

5. 配置签名信息

android 目录下新建 key.properties 文件,内容如下:

storePassword=你的密码
keyPassword=你的密码
keyAlias=upload
storeFile=../../key/upload-keystore.jks
  • keyAlias 与生成 keystore 时的 -alias 参数一致
  • storeFile 路径为 keystore 文件实际位置

6. 配置 Gradle 签名

编辑 android/app/build.gradle.kts,完成如下配置:

顶部导入

import java.util.Properties
import java.io.FileInputStream

android 块内添加签名配置

signingConfigs {
    create("release") {
        keyAlias = keystoreProperties["keyAlias"] as String ?: "upload"
        keyPassword = keystoreProperties["keyPassword"] as String
        storeFile = keystoreProperties["storeFile"]?.let { file(it) }
        storePassword = keystoreProperties["storePassword"] as String
    }
}

修改buildTypes

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig = signingConfigs.getByName("release")
    }
}

7. 修改包名(可选)

如需更改包名,修改如下字段,并全局替换项目中的包名:

namespace = "com.example.flutter_app"
applicationId = "com.example.flutter_app"

8. 设置最低和目标 SDK 版本

android/app/build.gradledefaultConfig 中设置:

defaultConfig {
    applicationId = "com.example.flutter_app"
    minSdkVersion(21)      // 最低支持 Android 5.0
    targetSdkVersion(34)   // 目标 Android 14
    minSdk = flutter.minSdkVersion
    targetSdk = flutter.targetSdkVersion
    versionCode = flutter.versionCode
    versionName = flutter.versionName
}

9. 打包 APK

在项目根目录下执行:

flutter build apk --release
  • 打包完成后,APK 文件位于 build/app/outputs/flutter-apk/app-release.apk

常见问题与建议

  • 签名失败? 检查 key.properties 路径和内容是否正确,密码是否一致。
  • 包名冲突? 全局搜索替换包名,确保所有引用一致。
  • 版本号未更新? 检查 pubspec.yamlbuild.gradle 的版本号配置。

如有更多 Flutter 打包相关问题,欢迎留言交流!

其他Flutter相关文章: Flutter运行报错:NDK缺少source.properties文件的解决方法

版权声明

未经授权,禁止转载本站文章。如需转载必须保留原文链接并注明出处。
只要保留链接并注明出处,即视为默认获得授权。未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接:《Flutter 打包发布 APK 全流程详解(含签名与版本配置)》