原文地址:neohelden.com/blog/tech/f…
原文作者:neohelden.com/
发布时间:2020年1月24日
Flutter目前的使命是成为真正的 "一次写入,随时随地运行 "的技术。"iOS "和 "Android "平台得到了广泛的支持,并且已经可以使用Flutter构建macOS应用。
ℹ️这篇文章解决了一个非常技术性的问题--如果你有兴趣了解更多关于Flutter的信息,以及为什么要使用它,这篇文章提供了一个更高层次的概述,并解释了为什么我们要用Flutter构建我们的AI助手。
在过去的几个月里,使用Flutter构建和运行macOS应用程序已经变得相当容易。遗憾的是,围绕Flutter Desktop应用程序的工具仍然缺乏一些基本功能--但请放心,Flutter的维护者已经在研究其中的大部分功能。
向客户运送Flutter桌面应用程序
目前缺少的一个基本功能是建立一个macOS安装程序(通常是一个.dmg文件)进行分发的能力。默认情况下,Flutter会建立一个.app文件,可以直接执行。
$ flutter build macos --release
Running pod install...
Building macOS application...
$ ls build/macos/Build/Products/Release
Neo.app
用Flutter建立一个.dmg
用.dmg文件在macOS上安装Flutter桌面应用程序。
但是,如果你想发布一个安装程序呢?
有一个很棒的项目叫 "create-dmg",可以用Homebrew安装(其他安装方法请参考项目的README)。
要尝试一下,在建立你的macOS应用程序后,切换到/build/macos/Build/Products文件夹。
定制你的安装程序
为了让你的安装程序更加花哨,你可以自定义卷名、卷图标和安装程序背景。你只需要摆弄一下图标的位置和文字的大小,然后你就会得到一些命令行。
#!/bin/sh
test -f Neo-Installer.dmg && rm Neo-Installer.dmg
create-dmg \
--volname "Neo Installer" \
--volicon "neo_icon.icns" \
--background "installer_background.jpg" \
--window-pos 200 120 \
--window-size 800 529 \
--icon-size 130 \
--text-size 14 \
--icon "Neo.app" 260 250 \
--hide-extension "Neo.app" \
--app-drop-link 540 250 \
--hdiutil-quiet \
"Neo-Installer.dmg" \
"Release/"
脚本会自动为DMG安装程序准备好所需的设置。不要被这个过程中自动出现的一些窗口吓到。
支持Retina,更有花样
默认情况下,背景图像不支持视网膜分辨率,可能看起来有点模糊。幸运的是,它可以使用TIFF图像而不是PNG / JPG。只需创建一个@2x版本的背景图片,分辨率为两倍。在 macOS 上,你可以使用 tiffutil 为你的安装程序创建一个视网膜就绪的背景图片。
tiffutil -cathidpicheck installer_background.jpg installer_background@2x.jpg -out installer_background.tiff
在使用create-dmg时,还有一些选项需要考虑。例如,你可以附加你自己的EULA/许可证。请记住,这个手动步骤(创建DMG安装程序)在Flutter的未来版本中可能会被淘汰。但就今天而言,这使您能够在短时间内启动并运行您自己的、可分发的Flutter桌面应用程序。
通过www.DeepL.com/Translator(免费版)翻译