Flutter开发桌面应用打包

目录

使用 Flutter 开发桌面应用

环境准备

第一个桌面应用

发布桌面应用

构建压缩包文件

生成证书 csr、crt、pfx

发布桌面应用

使用 Flutter 开发桌面应用

官网

中文官网

官方博客

镜像配置

命令行工具

官方地址 和 中文地址 的关系(中文网站一般都是以.cn结尾):

https://flutter.dev/xxx -> https://flutter.cn/xxx

https://docs.flutter.dev/xxx -> https://flutter.cn/docs/xxx

https://storage.googleapis.com/xxx -> https://storage.flutter-io.cn/xxx

环境准备

安装和配置 Flutter 开发环境

在中国网络环境下使用 Flutter

Flutter 桌面支持

为 Android 模拟器配置硬件加速

Visual Studio 下载

在 VS 中安装 C++ 支持

在开始菜单的搜索功能键入env,选择编辑系统环境变量

在 用户变量的 Path 中增加flutter\bin目录的完整路径

运行where flutter dart,确保flutter\bin目录在最前面

运行flutter doctor,只需要 解决与你需求相关的问题即可,不需要全部都处理掉

[可选] 创建 Android 模拟器,启用 硬件加速三件套:GLES、Skia 渲染、Hypervisor

下载 Visual Studio,安装C++ 桌面开发工作负载及其所有默认组件

第一个桌面应用

支持的 IDE:AS、IDEA 或 VS Code

创建新的 Flutter 项目

各个渠道的发布版本

Flutter build release channels

启用桌面版支持:flutter config --enable-windows-desktop

[可选] 安装一个支持 Flutter 的 IDE,例如 AS,并且需要安装 Flutter 和 Dart 插件

运行flutter devices,如果有 Windows (desktop) 代表桌面已成功启用

切换 flutter 到 beta 分支:git checkout -b beta remotes/origin/beta

创建一个 Flutter 项目,勾选 Windows 平台,没有的话代表你的环境有问题

选择目标设备后点击 Run 即可编译、运行,页面代码在lib/main.dart

bash

flutter upgrade # 更新 Flutter SDK 和依赖包

flutter channel        # 列出所有渠道(分支),并标出当前使用的渠道

flutter channel beta    # 切换到 beta 渠道:master、dev、beta、stable

flutter create myapp    # 在 myapp 目录中,创建一个包含桌面支持的新应用

flutter run -d windows  # 构建 debug 版本并启动,注意:桌面应用不支持热重载

flutter build windows  # 构建 release 版本(但是同样并不会打包)

发布桌面应用

Flutter 桌面支持

发布桌面应用

构建压缩包文件

打包需要的文件在目录 \module_bqt\build\windows\runner\(Debug or Release) 中,文件结构如下:

bash

Release

│──module_bqt.exe

│──flutter_windows.dll

│──msvcp140.dll          # [非必须] 本机代码的 C++ 标准库,需要从 C:\Windows\System32 拷贝

│──vcruntime140.dll      # [非必须] 本机代码的 C++ 运行库,需要从 C:\Windows\System32 拷贝

│──vcruntime140_1.dll    # [非必须] 本机代码的 C++ 运行库,需要从 C:\Windows\System32 拷贝

└──data

│  │──app.so

│  │──icudtl.dat

│  └──flutter_assets  # [非必须] 包括两个字体文件、版权说明

将以上所有文件打成一个 rar 后发给别人,别人即可正常运行。

生成证书 csr、crt、pfx

OpenSSL

CSR 文件在线生成

CSR 文件在线验证

bash

openssl version # 【OpenSSL 1.1.1h 22 Sep 2020】确保安装了OpenSSL

where openssl      # 【\Git\mingw64\bin\openssl.exe】也可以使用 Git 自带的

openssl genrsa -out bqt_rsa.key 2048                # 生成 2048 位的 rsa 私钥

openssl req -new -key bqt_rsa.key -out bqt_csr.csr  # 生成证书签名请求(CSR)文件

openssl x509 -in bqt_csr.csr -out bqt_crt.crt -req -signkey bqt_rsa.key -days 9999  # 生成 .crt 文件

openssl pkcs12 -export -out bqt_pfx.pfx -inkey bqt_rsa.key -in bqt_crt.crt          # 生成 .pfx 文件

生成 CSR 文件需要输入的信息

Country:国家代码,中国为 CN

State or Province Name:州或省名称,GuangDong

Locality Name (eg, city):城市,ShenZhen

Organization Name (eg, company):组织(公司),Tencent

Organizational Unit Name:组织单位(部门),IT

Common Name:名字,需要输入与服务器关联的域名,或者是您服务器的公共 IP 地址,baiqiantao.github.io

Email:邮箱,baiqiantao@sina.com

A challenge password:至少 4 位的密码,1234

生成的几个文件简介

.csr:Certificate Signing Request,证书签名请求文件,纯文本文件,可以 在线验证

.crt:Certificate,证书文件,纯文本文件,可以双击打开查看证书信息(包含.csr中的所有信息)

证书信息:此 CA 根证不受信任。要启用信任,请将该证书安装在受信任的根证书颁发机构存储区中

颁发者、颁发给、证书路径:baiqiantao.github.io

.pfx:Personal Information Exchange,个人信息交换文件,二进制文件,可以双击打开证书导入向导

向导可以帮助你将证书、书信任列表从磁盘复制到证书存储。证书存储是保存证书的系统区域

由证书颁发机构颁发的证书是对你身份的确认,它包含用来保护数据或建立安全网络连接的信息

安装后,我们的证书就是Trusted 受信任的 Root Certification Authorities 机构颁发的证书了

发布桌面应用

Windows 应用包格式:MSIX

MSIX 打包工具

部署示例

若要在 Windows 上分发你的应用,则需要一个 Windows 能够识别的证书签名。上面我们已经生成了一个自签名的.pfx证书,安装应用之前,我们需要在本地安装.pfx证书。

这一部分的内容太过复杂,而且官方文档已经明确说明:......不建议发布桌面应用!所以仅简单记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 一、新媒体文案内容的常见结构 1.总分总结构 (1)开头 (2)正文 (3)结尾 2.清单式结构 (1)推荐类内容...
    c908d8eb604d阅读 169评论 0 3
  • 简介 工程绝大多数界面只支持竖屏(大多数) 其中的拍照界面只支持横屏(少数) 工程配置 理论上,工程配置是其效果的...
    勇往直前888阅读 793评论 0 2
  • 疫情之下 很多人失业 但不能停止学习 这正是充电的好时机 充分利用互联网上的免费资源 坚持每天学习 每天进步一点点...
    诚福阅读 275评论 0 3
  • 一,新媒体文案内容的常见结构 1,总分总结构 (1)开头。文案的开头部分一般用于描述客观事物或抛出观点,通常起到制...
    Tsing_summ_9343阅读 448评论 0 3
  • 二十一世纪旧体诗词风骚榜[https://www.jianshu.com/c/da968ae2d498] 上榜絮语...
    张成昱阅读 538评论 0 17