Flutter环境搭建编译到desktop以及build输出桌面程序

环境搭建

flutter安装

参考文档 https://flutter-io.cn/docs/get-started/install/macos
没有翻墙可以替换一下国内的镜像,使用下面这个guide
https://flutter-io.cn/community/china

安装完之后使用flutter doctor看看还缺什么环境


image.png
Cocoapods安装

cocoapods镜像
pod setup太慢的问题,使用国内镜像
https://mirror.tuna.tsinghua.edu.cn/help/CocoaPods/

Dart SDK安装
 brew tap dart-lang/dart
 brew install dart

通过这个命令安装却发现,一直都是10kb/s的速度,索性直接下载下来,然后AS指定本地路径,下载链接
https://storage.googleapis.com/dart-archive/channels/stable/release/2.4.1/sdk/dartsdk-macos-x64-release.zip

dart.png

到此为止其实已经可以满足flutter开发移动端的需求了,但是要移植到桌面端还需要一些操作

移植到桌面端

需要的项目
https://github.com/google/flutter-desktop-embedding
负责提供初始化版的base desktop demo,想要编译到对应到平台,只需要把对应的文件目录拷贝到根目录下。
但是以这种方式跑出来的项目有一个缺陷就是以
flutter run -v
的方式,并不是生成的 对应的 可执行app版本,而且还有一个debug的标记。
所以我们还需要将这个继续编译成一个和环境无关,可以直接安装的桌面程序。

以macOS端为例,下面两个参考项目
https://github.com/go-flutter-desktop/go-flutter
https://github.com/go-flutter-desktop/examples

负责desktop环境下打包成app,exe包,在这之前我们安装相关的环境
第一个就是go语言,这个桌面端的打包脚本都是由go语言写的
http://docs.studygolang.com/doc/install
第二个就是hover,负责桌面端的打包
https://github.com/go-flutter-desktop/hover

hover build

有了hover后就能打包成一个app文件了,编译生成的二进制文件,构造成一个macOS下的app,同时在打包的过程中遇到了几个问题,生成的文件里面只是一个可执行文件,为了变成一个application,还需要添加 plist, icon等元素,下面的issus里面提供了解决方案

https://github.com/go-flutter-desktop/go-flutter/issues/156
https://github.com/go-flutter-desktop/go-flutter/issues/179

目前来看通过这个方式打出来的macOS application里面包含一个flutter引擎 30多M, 所以这个application会比较大,即使是一个demo项目,这方面暂时还没有找到好的解决方式

推荐阅读更多精彩内容