Flutter打包apk

66 阅读1分钟

Flutter项目打包android apk发布

环境介绍

  • flutter 3.35.4
  • android studio 2025.2.1
  • java 17.0.16
  • mac os 15.7.2

生产应用程序签名

keytool -genkey -v -keystore ~/[你的路径]/key.jks -keyalg RSA -keysize 2048 -validity 36500 -alias [你的APP别名]

指令中的 36500 表示证书有效期,单位为天。也就是100年。 下面是指令执行后的内容,你需要填写一些信息。

image.png

创建签名配置文件

改文件路径为:/android/key.properties,如果没有请创建

image.png

在这个文件中填写如下内容:

storePassword=1234567890 //创建签名时输入的密码
keyPassword=1234567890 //创建签名时输入的密码
keyAlias=key // 创建签名时输入的别名
storeFile=/Users/stephen/Flutter/key.jks // 签名存放的路径

修改app的build.gradle.kts文件

路径:/android/app/build.gradle.kts

image.png

在文件的顶部加入

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

找到文件中的 android {}块,在他的前面,不是里面,添加如下内容。


val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}

// 他的前面
android {
    // ..........
}

在 android 属性块内的 buildTypes 属性块之前添加签名配置。

    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties["keyAlias"] as String
            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("debug")
        }
    }

运行打包命令

flutter build apk

等待一会儿,对应文件夹下的几个 apk 都可以

image.png

参考文件 docs.fluttercn.cn/deployment/…