使用 Flutter 开发 Mac 桌面应用
Flutter 可以开发 Mac,Linux,Windows 桌面,但是对于平台目前只能打对于的包,以及调试本平台的包。
切换到 master 分支
首先必须切换到 master 分支。我之前在 dev 分支,折腾了好久,都只停留于理论概念阶段。直到有一次看到了简书中提到需要在 master 分支,经过测试确实可以正常运行。其实当时主要是卡在 本地找不到桌面模拟器这个环节。

开启 Mac 开发桌面应用
Flutter 的 master 默认是关闭 桌面应用的,我们可以使用下面的命令开启:
flutter config --enable-macos-desktop
flutter config --enable-linux-desktop
flutter config --enable-windows-desktop
这个默认会修改 flutter 的配置文件,配置目录是:当前用户名目录下的 .flutter_settings。

Flutter 查看本机的桌面模拟器
使用命令:
flutter devices

创建带 Mac 桌面应用的 Flutter 工程
包名需要小写哦,否则就是不匹配 dart 的包名。

flutter create --macos hello_desktop_demo
创建成功后:

让项目支持 Mac 桌面应用
Mac 相对支持的较好,创建项目后立刻就能运行起来。Windows 相对来说 需要安装 VS。Linux 也是需要对应组件。

发布平台包
因为各自平台的构建不同,打包命令也不同,这里仅以 Mac 应用为例。
编译出对应平台的安装包:
flutter build macos
flutter build linux
flutter build windows
构建成功

输出对应的 Mac 应用包


直接运行 Mac 应用

可以编译出对应版本,在 项目目录中的 build/对应平台/release 目录下。这里只能编译和本机相同平台。
- Linux平台编译出的为一个可执行文件
- Windows平台编译出的为.exe文件
- Mac平台编译出的为.pgk文件
小结
构建桌面应用程序还不是特别稳定,如果遇到问题,可以查询官方文档,这里只作为介绍。
使用 Flutter 开发 Mac 桌面应用的更多相关文章
- MAC安装flutter开发环境
#最近在学flutter开发,写一篇记录一下安装的过程 1.配置flutter镜像地址 vim ~/.bash_profile 命令行输入后回车,打开.bash_profile配置镜像地址 expo ...
- mac 上配置flutter开发环境
(ios,Android,Xcode,Android Studio,VScode,IDEA) 1)安装Flutter SDK 2)iOS 环境配置 3)Android Studio配置 4)VS co ...
- 安装与配置Flutter开发环境
这篇博客我们介绍了Flutter,并且对比了H5,React Native,Flutter. 由于Flutter是跨平台的开发框架,开发一次可以同时运行在Android和iOS上面,所以我们开发时最好 ...
- Canonical通过Flutter启用Linux桌面应用程序支持
子标题:Ubuntu团队为所有Linux发行版上的Flutter应用程序制作了一个新的基于GTK +的主机. 此文翻译自:https://medium.com/flutter/announcing-f ...
- Flutter 开发从 0 到 1(五)源码
Flutter 开发从 0 到 1 明天开始又要上班了,你的假期任务完成如何啊?由于平时加班太多了,实在挤不出更多时间,从开始想用 Flutter <Flutter 开发从 0 到 1(一)需求 ...
- Electron+Vue开发跨平台桌面应用
Electron+Vue开发跨平台桌面应用 xiangzhihong发布于 2019-12-23 虽然B/S是目前开发的主流,但是C/S仍然有很大的市场需求.受限于浏览器的沙盒限制,网页应用无法满足某 ...
- 在 macOS 上搭建 Flutter 开发环境
下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...
- 马上着手开发Mac应用程序
你是否想要开发 Mac 应用程序却又不知道从哪里入手?本路线图提供了 Mac 应用程序开发的绝佳起点,即使你已经是一个 iOS 开发专家,本路线图对你依然适用.Apple让开发应用程序和提交应用程序到 ...
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...
随机推荐
- linux实用小命令--查看文本内容
一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚 ...
- python数据挖掘第二篇-爬虫
python爬虫 urllib用法 eg1: from urllib import request data = request.urlopen(urlString).read() # data获取的 ...
- hdu3999 The order of a Tree
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999 题意:给一序列,按该序列插入二叉树,给出字典序最小的插入方法建相同的一棵树出来.即求二叉树的先序 ...
- ubuntu用户帐号
与用户帐号相关的有几个非常重要的文件/ect/passwd,/etc/shadow,/etc/group /etc/passwd 执行 head -n 5 /ect/passwd显示前5行,内容如下: ...
- synchronized,ReentrantLock解决锁冲突,脏读的问题
最常见的秒杀系统,解决思路就是从前端.后台服务.数据库层层去掉负载,以达到平衡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLo ...
- Python3 猜年龄小游戏进阶之函数处理
在猜年龄的基础上编写登录.注册方法,并且把猜年龄游戏分函数处理 登录函数 注册函数 猜年龄函数 选择奖品函数 # 注册 def register(): '''注册''' count = 0 while ...
- 对 HTML 语义化的理解
简述一下你对 HTML 语义化的理解? 用正确的标签做正确的事情. html 语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 即使在没有样式 CSS 情况下也以一种文档格式显示,并 ...
- ConcurrentHashMap比其他并发集合的安全效率要高一些?
前言 我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加 ...
- java面试题干货51-95
51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断: try { throw new ExampleB("b") } catc ...
- NodeJS1-1 NodeJS是什么?
Node.js is a JavaScript runtime built on Chrome's V8 Node.js uses an event-driven,non-blocking I/O ...