Flutter项目打包生成APK

article/2025/9/19 10:39:56

flutter实现安卓打包:(以安卓Studio工具为例)

(1)创建key.jks文件

在安卓studio中调整至项目路径,例如:
我的项目所在地

E:\Flutter\fluttershuqi>

然后输入命令:

keytool -genkey -v -keystore E:\Flutter\fluttershuqi\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

最后的alias key , key指的是签名文件的别名。
其中E:\Flutter\fluttershuqi是我希望.jks文件创建的位置,

E:\Flutter\textdemo>keytool -genkey -v -keystore E:\Flutter\fluttershuqi\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?[Unknown]:  1
您的组织单位名称是什么?[Unknown]:  2
您的组织名称是什么?[Unknown]:  3
您所在的城市或区域名称是什么?[Unknown]:  4
您所在的省//自治区名称是什么?[Unknown]:  5
该单位的双字母国家/地区代码是什么?[Unknown]:  6
CN=1, OU=2, O=3, L=4, ST=5, C=6是否正确?[]:  Y正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000):CN=1, OU=2, O=3, L=4, ST=5, C=6
输入 <key> 的密钥口令(如果和密钥库口令相同, 按回车):
[正在存储E:\Flutter\fluttershuqi\key.jks]Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\Flutter\fluttershuqi\key.jks -destkeystore E:\Flutter\fluttershuqi\key.jks -deststoretype pkcs1
2" 迁移到行业标准格式 PKCS12。

此时你的key.jks文件就创建成功了,
在这里插入图片描述
如果此过程报错,请参考如何打包发布flutter项目

(2) 将创建的jks文件粘贴至Flutter项目的指定位置

  • (1)方案一:直接放在android/app文件夹下,这样的话第3步中的storeFile写法为:
    storeFile=key.jks或者storeFile=E:/Flutter/fluttershuqi/android/app/key.jks

  • (2)也可以在app目录下再创建一个文件夹,例如文件夹key
    storeFile=key/key.jks或者storeFile=E:/Flutter/fluttershuqi/android/app/key/key.jks

方法(一):

(3) 在项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码:

错误写法:

storePassword=123456   //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=123456    //输入上一步创建KEY时输入的 密钥 密码
keyAlias=key
storeFile=E:/Flutter/fluttershuqi/android/app/key.jks    //key.jks的存放路径  此处要是用/而不是\

此处是我自己遇到的问题,中间一直找不到问题,最后才发现这个文件注释不是//而是#,我开始错误使用了//导致一直报如下错,这是将后面的空格和//的内容都识别到key路径中了,所以才会找不到。

* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file 'E:\Flutter\fluttershuqi\android\app\key.jks   \key.jks????��??��??' not found for signing config 'release
'.

正确写法:

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=E:/Flutter/fluttershuqi/android/app/key.jks

注意:后面连空格都不要有,不然也会报错

(4) 配置/android/app/build.gradle文件

  • 进入项目目录的/android/app/build.gradle文件,在
android {}

上面添加:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
  • 修改
buildTypes {release {signingConfig signingConfigs.debug}
}

为:

 buildTypes {release {signingConfig signingConfigs.release}}
  • 添加:
signingConfigs {release {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}}

方法(二):

(3)配置build.gradle文件

  • 修改
buildTypes {release {signingConfig signingConfigs.debug}
}

为:

signingConfigs {release {keyAlias 'key'keyPassword '123456'storeFile file('key.jks')//此种写法默认key文件在android-app文件夹下storePassword '123456'
//            keyAlias keystoreProperties['keyAlias']
//            keyPassword keystoreProperties['keyPassword']
//            storeFile file(keystoreProperties['storeFile'])
//            storePassword keystoreProperties['storePassword']}debug {keyAlias 'key'keyPassword '123456'storeFile file('key.jks')storePassword '123456'
//            keyAlias keystoreProperties['keyAlias']
//            keyPassword keystoreProperties['keyPassword']
//            storeFile file(keystoreProperties['storeFile'])
//            storePassword keystoreProperties['storePassword']}}buildTypes {release {signingConfig signingConfigs.release}debug {signingConfig signingConfigs.release}}

(4)打包 生成apk

输入命令:flutter build apk
即生成安装包,安装包位置:E:\Flutter\myflutter\build\host\outputs\apk\release,即在项目build文件夹下。

(5)关于备注内容

  • 修改应用名称和logo:
    在这里插入图片描述

http://chatgpt.dhexx.cn/article/AbfUrpls.shtml

相关文章

Android App打包流程

简单总结下app打包的流程&#xff1a; 第一步&#xff1a;aapt 为res目录下的资源生成R.java文件&#xff0c;同时为AndroidManinfest.xml生成Manifest.java文件 第二步&#xff1a;aidl 把项目中自定义的aidl文件生成相应的Java代码文件 第三步&#xff1a;javac 把项目中所…

iOS app打包过程

1.点击Product - Archive 2.选择Development 点击Next 3.什么都不选&#xff0c;点击下一步 4.选择第一个&#xff0c;点击next 5.选择Export 6.拿到.ipa文件&#xff0c;导出成功&#xff01; 7.接下来&#xff0c;可以将ipa文件拖到蒲公英进行发布

Flutter 打包APP (Android IOS)

打包Android apk 参考 https://flutter.dev/docs/deployment/android https://flutterchina.club/android-release/ Flutter项目打包成安卓apk详解来了&#xff08;解决安装没网络问题&#xff09; 【Flutter 专题】39 图解 iOS 打包 IPA 文件 Flutter - 打包APK、IPA 及 IOS上…

【uniapp小程序】—— APP项目云打包(安卓)

&#x1f341; 前言 之前小程序系列文章写了配置页面和封装自定义组件&#xff0c;这次写一下开发完成我们的项目后&#xff0c;如何进行打包安装。 本文主要讲述的是使用 uniapp打包安卓。 &#x1f342; 正文 第一步&#xff1a;查看自己的项目的基础配置 第二步&#xff1a…

前端打包利器,webpack工具,app打包工具

什么是 webpack&#xff1f; webpack是近期最火的一款模块加载器兼打包工具&#xff0c;它能把各种资源&#xff0c;例如JS&#xff08;含JSX&#xff09;、coffee、样式&#xff08;含less/sass&#xff09;、图片等都作为模块来使用和处理。 我们可以直接使用 require(XXX) 的…

app打包流程

在项目根目录 npm run build 会多出一个dist文件 打开hubuildX 文件–》新建 —》项目 5app—》模板默认模板–》创建 --》 项目根目录右键 --》在外部资源打开 --》找到刚才打包的dist文件里的所有文件到这个新建的项目里面 —》 全部替换 --》 把css image js 文件夹删…

干货,快速的教你如何打包app

所需工具&#xff1a;HbuilderX hbuilderX下载地址&#xff0c;下载符合自己电脑的就行。 1.新建项目 步骤&#xff1a;文件 → 新建 → 项目 2.选择5app,输入项目名称&#xff0c;选择项目存放目录 3.和我们正常的项目一样&#xff0c;只不过多了 unpackage 和 manifest.j…

HTML一键打包APK工具(安卓应用APP)

工具简介 “HMTL一键打包APK工具”可以把本地HTML项目或者网站打包为一个安卓应用APK文件&#xff0c;无需编写任何代码&#xff0c;支持在安卓设备上安装运行。 打包工具群&#xff1a;429338543 下载地址&#xff1a; 点击进入下载页面 加群获取最新软件 软件交流群&#…

【 uniapp 】打包Android的apk(原生APP-云打包),及发布测试

前言&#xff1a; 跨端(小程序、Android、IOS)项目开发好了&#xff0c;我们如何去利用 uniapp 的云打包去打包 apk 文件&#xff0c;然后上传测试呢&#xff1f;今天我们一起来学习一下&#xff0c;一步一步如何实现&#xff01; 目录 一、 打包 Android &#xff0c;生成apk…

一款好用的应用程序打包工具

工具简介 Inno Setup用Delphi写成&#xff0c;其官方网站同时也提供源程序免费下载。Inno Setup是一个免费的安装制作软件&#xff0c;小巧、简便、精美是其最大特点&#xff0c;支持pascal脚本&#xff0c;能快速制作出标准Windows2000风格的安装界面&#xff0c;足以完成一般…

快速打包、发布和管理应用——AppUploader工具介绍

AppUploader的主要功能介绍 购买激活码 在AppUploader官网上&#xff0c;可以购买激活码激活账号&#xff0c;根据需求购买&#xff0c;单次购买多个比单次购买单个更划算。 激活激活码 购买激活码后&#xff0c;可以在激活页面输入订单进行查询激活码&#xff0c;从而激活账…

【推荐】App多渠道打包工具

Android应用市场存在大大小小几百个商店&#xff08;一个商店就代表一个渠道&#xff0c;比如&#xff1a;360手机助手、小米应用市场、华为应用市场、三星应用市场&#xff09;&#xff0c;每当App需要发布新版本时&#xff0c;我们就需要重新分发一遍每一个应用市场&#xff…

Android多渠道打包的几种常用工具

Android项目开发完&#xff0c;多渠道打包是必不可少的环节。其原理在于&#xff0c;通过在Android安卓包中添加不同的标识&#xff0c;区分各个渠道下载来源&#xff0c;用于统计App在不同应用市场或渠道合作中的各项数据。 工欲善其事&#xff0c;必先利其器。当在项目中遇到…

在thinkphp中引入自定义的敏感词库

本文主要讲述&#xff0c;如何在thinkphp项目中创建敏感词库方法&#xff0c;如何引入敏感词库&#xff0c;以及如何将敏感词库用到项目中。 首先是在项目的thinkphp的第三方插件目录中&#xff0c;引入自定义的敏感词库。具体的配置路径是 /ThinkPHP/Extend/Library/ORG/Sens…

lua 文件读写处理(操作敏感词库)

最近需要给游戏做一个敏感词新系统&#xff0c;我采用的方法是比较常用的DFA&#xff08;确定有穷状态机&#xff09;算 法&#xff0c;先不讲算法&#xff0c;而这种算法的实现需要一个相应的敏感词库。 我拿到了词库后发现词库中大概有8000个词&#xff0c;其中包括很多重复的…

小怡同学被骂到清空社交平台?各大平台连敏感词库都没有的吗?

敏感词都没有的平台 最近某加拿大籍贯的 rapper 被曝私生活不检点&#xff0c;且极有可能涉及诱X未成-年少-女&#xff0c;成为一个 raper。 当然至于是否属实&#xff0c;其实一个人是否是海王&#xff0c;微信、QQ 聊天记录里面记得清清楚楚。再上升到刑事案件的时候&#x…

敏感关键词 词库_关键词优化难度分析怎么做?老鸟如何一键筛选优质关键词(悬赏1元)...

关键词优化是SEO工作的重点之一&#xff0c;之前聊了关键词挖掘&#xff0c;就有朋友问如何做关键词优化难度的分析&#xff0c;所以决定把这块详细写一写。 同时也说一下我自己的一个关键词优化性价比算法&#xff0c;目前这个算法已经帮我筛选出大量竞争低、流量高的关键词&a…

谷歌归期未定,但敏感词库已经建起来了

西雅图IT圈&#xff1a;seattleit 【今日作者】 PowerBall选号机 身体和灵魂总有一个要 走在买PowerBall的路上 谷歌回归 中国大陆的消息年年有&#xff0c;次次说的有鼻子有眼&#xff0c;而这回好像比哪一次都更靠谱。 从上周开始&#xff0c;谷歌回国的消息就又沸沸扬扬的传…

Python敏感词过滤DFA算法+免费附带敏感词库

DFA简介参考&#xff1a;https://blog.csdn.net/chenssy/article/details/26961957 此篇是上述JAVA敏感词过滤的python版本&#xff0c;完整版本&#xff0c;修改版本 首先我们看看最终处理效果 实例1&#xff1a; 输入字符串 处理结果 核心代码&#xff1a; SensitiveFilt…

Java实现自定义敏感词库过滤

最近接到一个需求&#xff0c;要添加一个敏感词管理模块&#xff0c;一如既往的CURD&#xff0c;敏感词我们添加到了自己的库里。然后进行一个自定义敏感词过滤&#xff0c;话不多说直接贴代码 1、工具类 这里只是最简单的得到敏感词进行转换&#xff0c;可以根据自己的业务需…