Flutter打包apk中的一些巨坑

本文详细介绍了一种在Flutter中成功打包APK的正确方法,包括创建密钥库、配置属性文件及修改Gradle脚本等关键步骤,避免官方文档中的常见陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许多人在使用Flutter打包apk时都会参照文档的做法,但是按照文档基本上是百分之百失败的[手动狗头],官网的做法是这样的(可以不用看)
官网做法
但是方法基本不可行。

下面介绍一下正确的打包姿势

  1. 如果没有创建key的同学,先在命令行里输入下面的代码
    keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
    

接下来会让你创建密钥库和密钥的密码,记住自己创建的密码,下面会用到,
然后cmd就会让你输入一些信息,像一些奇奇怪怪的消息比如个人信息直接回车就可以了,然后中间会问你是否确认,输入y就可以了
不出意外在D盘的根目录下就会创建一个key.jks文件了,注意这个文件一定不要共享给别人。

  1. 在android目录下创建一个key.properties文件 输入以下代码,保存一下。
storePassword= 刚刚创建密钥库时的密码
keyPassword=  刚刚创建密钥的密码
keyAlias=key
storeFile=D:/key.jks
  1. 接下来就是和文档不一样的地方了,也是个巨坑。打开flutter的/android/app/build.gradle文件,在android前加入
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

如图
在这里插入图片描述
把buildTypes换成

signingConfigs {
    release {
        keyAlias "创建的密钥别名,如果不知道可以去key.jsk文件所在目录输入keytool -list -v -keystore key.jks -storepass 对应的密码"
        keyPassword "密钥的密码"
        storeFile file(“密钥所在文件夹,如果是按照我上面的步骤的话是D:/key.jks”)
        storePassword "密钥库的密码"
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

如图
在这里插入图片描述

  1. 最后在命令行输入输入
flutter build apk

大概率就大功告成了!
我们的apk文件保存在Flutter文件夹的build\app\outputs\apk\release\app-release.apk 目录下。

这样我们就完美避开了G家在文档里挖的坑啦!

转载于:https://www.cnblogs.com/yfc0818/p/11072652.html

### 使用 Flutter 打包生成 APK 文件 #### 准备工作 为了成功创建 APK 文件,开发者需先确保项目的配置无误并完成必要的设置。对于初次尝试打包的新手而言,掌握基础的签名流程至关重要[^3]。 #### 创建密钥库文件 第一步涉及生成用于签署应用程序的密钥库文件。这一步骤通过命令行工具 keytool 完成,该工具随 JDK 提供。具体指令如下所示: ```bash keytool -genkeypair -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 ``` 此命令会提示输入密码和其他细节信息来建立新的 keystore 和私钥对。 #### 配置 `build.gradle` 文件 接着,在 Android 工程目录下的 `app/build.gradle` 中指定刚才创建好的密钥路径及其他参数。这部分内容应放置于 android {} 节点内部: ```groovy android { ... signingConfigs { release { storeFile file('my-release-key.jks') storePassword 'your_store_password' keyAlias 'your_key_alias' keyPassword 'your_key_password' } } buildTypes { release { ... signingConfig signingConfigs.release } } } ``` 上述代码片段展示了如何将签名配置应用到发布版本上。 #### 构建 APK 当一切准备就绪后,可以通过运行以下命令来进行最终构建过程: ```bash flutter build apk --release ``` 这条命令将会依据之前所做的设定编译出已签名的应用程序安装包 (APK),适用于分发给用户或上传至 Google Play 商店[^1]。 如果仅希望针对特定架构(如armeabi-v7a 或 arm64-v8a)进行优化,则可以在命令后面加上相应选项以控制输出类型;例如只打包32位/64位二进制文件。 此外,还可以自定义生成 APK 的名称。为此需要编辑模块级 Gradle 文件中的 defaultConfig 块加入额外属性: ```groovy defaultConfig { ... setProperty("archivesBaseName", "appName-$versionName") } ``` 这段脚本允许按照预设模式重命名产出物,其中变量 `$versionName` 将被实际版本号替代[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值