[Flutter翻译]Flutter桌面。如何为你的Flutter macOS应用获得一个自定义安装程序。

698 阅读3分钟

原文地址: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(免费版)翻译