1

我已经开始了使用 Flutter 桌面的旅程。直到现在一切正常。我正在开发一个应用程序,它正在为 macOS 构建,就像一个魅力。现在我想为 windows (.exe) 创建可执行文件。是否可以从 macOS 生成一个?如果是这样,我怎样才能实现这样的目标?

编辑:

为了能够构建应用程序的可执行版本,我们需要从我们希望我们的应用程序运行的操作系统执行此操作。就我而言,我每天都在使用 Mac,所以我必须创建虚拟机来构建 Windows 的 .exe

4

2 回答 2

2

flutter工具不支持交叉编译桌面目标,因此没有直接的方法来做你想做的事。

如果您想手动执行此操作,则需要(除了设置用于从 macOS 构建 Windows 应用程序的交叉编译工具链之外):

  • 手动重新创建通常由以下方式自动完成的预构建步骤flutter(下载正确的 Flutter DLL 并将其放置在预期的位置,如果您正在使用 C++ 包装器,请执行相同的操作,创建.props具有正确值的文件等) ,然后直接构建.sln,或者
  • 本地修改flutter_tool,使其不对 Windows 步骤进行主机平台检查,并重写其定位方式msbuild以在 macOS 上工作。
于 2019-07-25T14:00:14.557 回答
1

文档说:

不支持交叉编译问题 28617

编译器仅支持为其运行的操作系统创建机器代码。您需要在 macOS、Windows 和 Linux 上运行编译器三次,才能为所有三个操作系统创建可执行文件。一种解决方法是使用支持所有三个操作系统的 CI(持续集成)提供程序。

于 2020-11-04T09:24:50.100 回答