Flutter Desktop - генерировать.exe из Mac

Я начал свое путешествие с рабочего стола Flutter. До сих пор все работало нормально. Я разрабатывал приложение, и оно создавало для macOS как шарм. Теперь я хотел бы создать исполняемый файл для Windows (.exe). Можно ли сгенерировать один из macOS? Если так, как я могу достичь чего-то подобного?

1 ответ

flutter Инструмент не поддерживает кросс-компиляцию целей рабочего стола, поэтому нет простого способа сделать то, что вы хотите.

Если вы хотите сделать это вручную, вам потребуется (в дополнение к настройке цепочки инструментов кросс-компиляции для сборки приложений Windows из macOS в целом):

  • вручную воссоздать этапы предварительной сборки, которые обычно выполняются автоматически flutter (загрузите правильную Flutter DLL и поместите ее в ожидаемое место, сделайте то же самое с оболочкой C++, если вы ее используете, создайте .props файл с правильными значениями и т. д.), затем создайте .sln напрямую или
  • локально изменить flutter_tool так что он не выполняет проверку платформы хоста для шагов Windows, и переписывает способ, которым он находит msbuild работать на macOS.

В документации говорится:

Нет поддержки кросс-компиляции (проблема 28617).

Компилятор поддерживает создание машинного кода только для операционной системы, в которой он работает. Вам нужно запустить компилятор трижды - в macOS, Windows и Linux - для создания исполняемых файлов для всех трех операционных систем. Обходной путь - использовать поставщика непрерывной интеграции (CI), который поддерживает все три операционные системы.

Другие вопросы по тегам