Flutter项目打包android apk发布

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年。
下面是指令执行后的内容,你需要填写一些信息。
在这里插入图片描述

创建签名配置文件

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

在这里插入图片描述

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

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

修改app的build.gradle.kts文件

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

在这里插入图片描述

在文件的顶部加入

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 都可以

在这里插入图片描述

参考文件 https://docs.fluttercn.cn/deployment/android#sign-the-app

Flutter 项目中构建和生成 APK 文件,可以通过命令行工具或配置相关文件来完成。以下是一些关键步骤和注意事项: ### 构建 APK 文件的基本命令 在项目根目录的终端中运行以下命令即可生成 APK 文件: ```bash flutter build apk ``` 该命令会生成一个通用的 APK 文件,适用于大多数设备,文件通常位于项目的 `build/app/outputs/flutter-apk` 目录下 [^2]。 ### 生成针对不同 CPU 架构的 APK 文件 为了优化应用性能,可以为不同的 CPU 架构生成独立的 APK 文件。使用以下命令: ```bash flutter build apk --split-per-abi ``` 该命令会生成多个 APK 文件,分别对应 `armeabi-v7a`、`arm64-v8a` 和 `x86_64` 架构,这些文件同样位于 `build/app/outputs/flutter-apk` 目录下 。 ### 修改应用名称和 Logo 在打包 APK 文件之前,可以修改应用名称和 Logo。这些修改通常涉及修改 `pubspec.yaml` 文件中的应用名称以及 `android/app/src/main/res` 目录下的图标文件 [^1]。 ### 混淆编译 为了提高应用的安全性,可以在构建 APK 文件时进行混淆编译。在 `android/app` 目录下创建混淆文件 `proguard-rules.pro`,并添加相应的混淆规则。以下是一些基本的混淆规则: ``` -keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter.view.** { *; } -keep class io.flutter.** { *; } -keep class io.flutter.plugins.** { *; } ``` 然后在构建命令中添加 `--obfuscate` 和 `--split-debug-info` 参数来启用混淆和调试信息分离: ```bash flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory-name> ``` 该命令会生成混淆后的 APK 文件 [^3]。 ### 生成签名 APK 文件 为了发布应用,需要生成签名的 APK 文件。首先,创建一个名为 `/android/key.properties` 的文件,并包含对密钥库的引用: ``` storePassword=<创建 keystore 时的 storePassword> keyPassword=<创建 keystore 时的 keyPassword> keyAlias=key storeFile=<密钥库文件的位置 , 例如: F:/key.jks> ``` 然后,在 `android/app/build.gradle` 文件中配置签名配置,确保 `signingConfigs` 和 `buildTypes` 部分正确设置 [^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值