尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【Flutter】Flutter 中编译 Android 应用 apk 安装包对应的签名文件配置 ( Flutter 编译 release 版本 apk 使用默认签名文件 | 使用自定义签名文件 )
文章目录一、Flutter 编译 release 版本 apk 使用默认签名文件1、Flutter 编译 Release APK 的签名文件2、默认签名文件位置3、debug.keystore 默认签名文件密码4、验证 MacOS 中的 debug.keystore 默认签名文件5、验证 Windows 中的 debug.keystore 默认签名文件二、Flutter 编译 release 版本 apk 使用自定义签名文件1、准备签名文件2、配置签名信息3、配置构建脚本4、构建 Release APK5、备选方案 : 直接在 build.gradle 构建脚本中硬编码6、其它常见问题参考文档 :Flutter 官方文档 : https://docs.flutter.dev/install/quick使用出现网络问题 , 参考 在中国网络环境下使用 Flutter 文档 ;使用 VS Code 开发 Flutter 环境安装 :https://docs.flutter.cn/install/with-vs-codeVS Code 安装 :https://code.visualstudio.com/docs/setup/setup-overview一、Flutter 编译 release 版本 apk 使用默认签名文件1、Flutter 编译 Release APK 的签名文件开发 Flutter 应用时 , 执行flutter build apk --release命令编译 Android 的 release 版本的 apk 安装包 , 有以下两种情况 :如果在项目的android/app/build.gradle中显式配置signingConfigs.release, 则使用该签名配置对 apk 包进行签名 ;如果没有在项目的android/app/build.gradle中显式配置signingConfigs.release, 则使用 SDK 默认生成的 debug.keystore 签名文件 ;2、默认签名文件位置只有 Debug 构建 (flutter run/flutter build apk --debug) 会自动使用 Android SDK 生成的默认调试签名文件debug.keystore, 不同系统路径如下 :MacOS 系统的 debug.keystore 签名文件 默认路径 :~/.android/debug.keystore, 对应的完整绝对路径格式 是/Users/你的用户名/.android/debug.keystore;Windows 系统的 debug.keystore 签名文件 默认路径 :%USERPROFILE%\upload-keystore.jks, 对应的 完整绝对路径格式 是C:\Users\你的用户名\.android\debug.keystore;3、debug.keystore 默认签名文件密码debug.keystore 默认签名文件密码 :密钥库密码 :android密钥别名 :androiddebugkey密钥密码 :android4、验证 MacOS 中的 debug.keystore 默认签名文件MacOS 中 debug.keystore 签名文件的位置是 “~/.android/debug.keystore” ,在 MacOS 中 验证 本机~/.android/debug.keystore的 密码 和 别名 ;Last login: Thu Jul1617:30:13 on ttys008 hslhanshuliangdeMacBook-Air ~ % keytool-list-keystore~/.android/debug.keystore-storepassandroid21|head-20密钥库类型: jks 密钥库提供方: SUN 您的密钥库包含1个条目 androiddebugkey,2025-6-16, PrivateKeyEntry, 证书指纹(SHA1): E5:4A:5C:B0:35:09:E8:92:D8:A1:24:1C:42:56:D4:EA:2A:47:32:A4 Warning: JKS 密钥库使用专用格式。建议使用keytool -importkeystore -srckeystore /Users/hsl/.android/debug.keystore -destkeystore /Users/hsl/.android/debug.keystore -deststoretype pkcs12迁移到行业标准格式 PKCS12。5、验证 Windows 中的 debug.keystore 默认签名文件Windows 中的默认路径 C:\Users你的用户名.android\debug.keystore , 实际路径 C:\Users\octop.android\debug.keystore ;在 C:\Users\octop.android 目录下 , 打开 命令行终端 , 执行keytool-list-keystoreC:\Users\octop\.android\debug.keystore-storepassandroid命令 , 执行结果 :C:\Users\octop\.androidkeytool-list-keystoreC:\Users\octop\.android\debug.keystore-storepassandroid 密钥库类型: JKS 密钥库提供方: SUN 您的密钥库包含1个条目 androiddebugkey,2025-6-16, PrivateKeyEntry, 证书指纹(SHA1): E5:4A:5C:B0:35:09:E8:92:D8:A1:24:1C:42:56:D4:EA:2A:47:32:A4二、Flutter 编译 release 版本 apk 使用自定义签名文件在 Flutter 中编译 Android release 版本的 APK 时 , 需要使用签名文件 ( 通常是 .jks 或 .keystore ) 对应用进行签名 ; Flutter 本身没有提供命令行参数直接指定签名文件 , 而是通过修改 Android 项目的 Gradle 配置文件来实现 ;以下是配置签名并构建 release APK 的标准步骤 :1、准备签名文件确保你已有一个.jks或.keystore文件 ( 例如my-release-key.jks) , 并知道以下信息 :密钥库路径( 文件位置 )密钥库密码( storePassword )密钥别名( keyAlias )密钥密码( keyPassword )如果没有签名文件 , 可用keytool命令生成 :keytool-genkey-v-keystoremy-release-key.jks-keyalgRSA-keysize2048-validity10000-aliasmy-key-alias2、配置签名信息推荐使用key.properties存储签名文件信息 :为避免将敏感信息硬编码在build.gradle中 , 推荐在 Android 项目根目录创建key.properties文件 ;该key.properties文件与build.gradle构建脚本同级 , 即android/key.properties, 内容如下 :storePassword你的密钥库密码keyPassword你的密钥密码keyAlias你的密钥别名storeFile../my-release-key.jks# 相对于 android/ 目录的路径 , 或绝对路径注意:storeFile路径是相对于android/app/目录的 ; 上面写../表示将 jks 文件放在android/目录下 ; 如果 jks 放在其他位置 , 请使用相对于android/app/的路径或绝对路径 ;3、配置构建脚本打开android/app/build.gradle构建脚本 ,首先 , 在文件开头android {之前 , 加载key.properties:defkeystorePropertiesnewProperties()defkeystorePropertiesFilerootProject.file(key.properties)if(keystorePropertiesFile.exists()){keystoreProperties.load(newFileInputStream(keystorePropertiesFile))}然后 , 在android {块内添加signingConfigs配置 :android{...signingConfigs{release{if(keystorePropertiesFile.exists()){storeFilefile(keystoreProperties[storeFile])storePassword keystoreProperties[storePassword]keyAlias keystoreProperties[keyAlias]keyPassword keystoreProperties[keyPassword]}}}...}最后 , 在buildTypes.release中引用该签名配置 :buildTypes{release{signingConfig signingConfigs.release// 其他配置...}}完整示例片段 :defkeystorePropertiesnewProperties()defkeystorePropertiesFilerootProject.file(key.properties)if(keystorePropertiesFile.exists()){keystoreProperties.load(newFileInputStream(keystorePropertiesFile))}android{...signingConfigs{release{if(keystorePropertiesFile.exists()){storeFilefile(keystoreProperties[storeFile])storePassword keystoreProperties[storePassword]keyAlias keystoreProperties[keyAlias]keyPassword keystoreProperties[keyPassword]}}}buildTypes{release{signingConfig signingConfigs.release}}}4、构建 Release APK在项目根目录执行 :flutter build apk--release命令 , 构建完成后 , APK 文件位于build/app/outputs/flutter-apk/app-release.apk;5、备选方案 : 直接在 build.gradle 构建脚本中硬编码如果不想使用key.properties, 可以直接在signingConfigs中写死路径和密码 :signingConfigs{release{storeFilefile(路径/到/你的.jks)storePassword密码keyAlias别名keyPassword密码}}但这样做会将敏感信息提交到版本控制系统 , 存在安全风险 ;6、其它常见问题其它常见问题 :key.properties未找到: 确保文件位于android/目录下 , 且文件名正确 ;storeFile路径错误: 检查相对路径是否正确 , 或改用绝对路径 ;签名失败: 确认密码、别名与 jks 文件中的信息一致 ;构建时使用了 debug 签名: 检查buildTypes.release是否设置了signingConfig signingConfigs.release;通过以上步骤 , 即可在 Flutter 构建 Android release APK 时指定 jks 签名文件 ;
RELATED

相关推荐

基于STM32与OpenMV的自动泊车系统:嵌入式视觉与控制实战

基于STM32与OpenMV的自动泊车系统:嵌入式视觉与控制实战

简介:本资源是一套面向嵌入式开发学习者与电子设计竞赛参赛者的完整自动泊车系统实现方案,聚焦STM32与OpenMV协同开发,解决智能车辆视觉识别与运动控制融合的关键问题,适用于课程设计、电赛备赛及毕业设计等实践场景。压缩包共110…

📅 2026/11/5 13:22:42
实体店会员营销系统全栈开发实战:架构设计与核心模块实现

实体店会员营销系统全栈开发实战:架构设计与核心模块实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/31 20:52:05
基于51单片机和NRF24L01的无线温湿度多点监测系统设计与实现

基于51单片机和NRF24L01的无线温湿度多点监测系统设计与实现

简介:本资源是一套面向嵌入式初学者与自动化专业学生的工业级温湿度多点监测系统完整实践方案,聚焦石油化工罐区等高安全要求场景,解决易燃易爆环境中多点温湿度实时感知、无线传输与本地可视化显示的核心需求。压缩包共80个文件,…

📅 2026/10/16 2:31:49
MORE NEWS

更多资讯

📰

基于ADS122U04IPWR与STM32F427ZI的工业测温方案设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Dubbo服务下线实时告警:基于ZooKeeper Watch的轻量级监控方案

简介:这是一套面向Java分布式系统运维与开发人员的Dubbo服务高可用监控解决方案,聚焦于Provider异常下线的实时感知与告警响应。资源通过Zookeeper监听机制实现服务状态变更捕获,结合邮件通知模块,在不侵入原有Dubbo代码的前提下&…

📰

SSM超市管理系统源码解析:从分层架构到本地部署与业务修改

简介:这份资源是面向高校计算机专业学生与Java初学者的一套SSM框架课程设计完整项目,围绕超市管理场景,帮助读者完成从框架整合到业务模块落地的实战练习,适合作为毕业设计或课程作业的参考方案。压缩包共792个文件,约…

📰

SSM超市管理系统实战:从课设跑通到二次开发全解析

简介:这份资源是面向高校计算机相关专业学生与Java入门开发者的SSM课程设计参考项目,围绕超市管理场景,解决商品、库存、销售等业务模块从设计到落地的实践需求,适合作为课程作业、毕业设计原型或SSM框架练手案例。压缩包共792个文…

📰

锂电池PACK生产数字孪生平台架构与实现

1. 锂电池PACK生产数字孪生平台建设背景 在新能源行业快速发展的当下,锂电池PACK生产面临着前所未有的质量管控挑战。传统生产模式下,工艺参数分散在各个设备中,质量数据追溯困难,设备之间缺乏有效协同,这些问题直接影…

📰

PIPE4.3.0安装排错:JDK版本、JAVA_HOME与Petri验证

简介:PIPE 4.3.0 是一款基于 Petri 网的图形化建模与仿真软件,面向软件工程、系统分析与教学实验场景,帮助读者完成并发、同步与竞争等系统行为的建模、动态仿真及性质分析。压缩包共 2391 个文件,约 28.43MB,包含大量…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬