跳到主要内容

macOS 应用程序包

Flet CLI 提供了 flet build macos 命令,该命令允许将 Flet 应用程序打包成 macOS 应用程序包。

备注

该命令只能在 macOS 上运行。

先决条件

Rosetta 2

在苹果芯片上,Flutter 需要Rosetta 2

sudo softwareupdate --install-rosetta --agree-to-license

Xcode

Xcode15 或更高版本,用于编译原生 Swift 或 Objective-C 代码。

CocoaPods

CocoaPods1.16,用于编译并启用 Flutter 插件。

flet build macos

使用 Flet 创建 macOS 应用程序包。

包架构

默认情况下,flet build macos 命令构建适用于 Apple Silicon 和旧款 Intel 处理器的通用应用程序包。因此,打包工具将尝试为 arm64x86_64 平台下载 Python 二进制轮子。一些流行软件包的最新版本不再包含 x86_64 轮子,所以整个打包操作将失败。

你可以通过使用 --arch 选项将构建命令限制为特定架构。例如,要构建仅适用于 Apple Silicon 的 macOS 应用程序包,请使用以下命令:

flet build macos --arch arm64

同样可以在 pyproject.toml 中进行配置:

[tool.flet.macos]
build_arch = "arm64"

权限

设置写入 .entitlements 文件的 macOS 授权:

flet build --macos-entitlements name_1=True|False name_2=True|False...

默认的 macOS 授权:

  • com.apple.security.app-sandbox = False
  • com.apple.security.cs.allow-jit = True
  • com.apple.security.network.client = True
  • com.apple.security.network.server" = True

pyproject.toml 中配置 macOS 应用程序授权(注意授权名称周围的 "):

[tool.flet.macos]
entitlement."com.apple.security.personal-information.photos-library" = true