macOS 包
面向 macOS 的 Tauri 应用可以通过 应用程序包 (.app
文件) 或 Apple 磁盘映像 (.dmg
文件) 进行分发。Tauri CLI 会自动将您的应用程序代码打包成这些格式,并提供代码签名和公证应用程序的选项。请注意,.app
和 .dmg
包 **只能在 macOS 上创建**,因为跨编译目前尚不可用。
macOS 和 Linux 上的 GUI 应用不会继承 shell 配置文件 (.bashrc
、.bash_profile
、.zshrc
等) 中的 $PATH
。查看 Tauri 的 fix-path-env-rs crate 来解决此问题。
要将您的 Tauri 应用程序构建并打包成单个可执行文件,只需运行以下命令:
- npm
- Yarn
- pnpm
- bun
- Cargo
npm run tauri build
yarn tauri build
pnpm tauri build
bunx tauri build
cargo tauri build
它将构建您的前端(如果已配置,请参见 beforeBuildCommand
),编译 Rust 二进制文件,收集所有外部二进制文件和资源,最后生成整洁的平台特定包和安装程序。
设置最低系统版本
Tauri 应用在 macOS 上运行所需的最低操作系统版本为 10.13
。如果您需要支持更新的 macOS API(例如仅在 macOS 11.0 及更高版本中支持的 window.print
),您可以更改 tauri.bundle.macOS.minimumSystemVersion
。这将依次设置 Info.plist
LSMinimumSystemVersion 属性和 MACOSX_DEPLOYMENT_TARGET
环境变量。
二进制目标
您可以编译目标为 Apple 芯片、基于 Intel 的 Mac 电脑或通用 macOS 二进制文件的应用程序。默认情况下,CLI 会构建一个针对您机器架构的二进制文件。如果您想为不同的目标构建,则必须首先通过运行 rustup target add aarch64-apple-darwin
或 rustup target add x86_64-apple-darwin
来安装缺少的 rust 目标,然后您可以使用 --target
标志构建您的应用程序
tauri build --target aarch64-apple-darwin
:针对 Apple 芯片机器。tauri build --target x86_64-apple-darwin
:针对基于 Intel 的机器。tauri build --target universal-apple-darwin
:生成一个 通用 macOS 二进制文件,可在 Apple 芯片和基于 Intel 的 Mac 上运行。
虽然 Apple 芯片机器可以通过名为 Rosetta 的转换层运行为基于 Intel 的 Mac 编译的应用程序,但这会导致由于处理器指令转换而导致性能下降。通常的做法是在下载应用程序时让用户选择正确的目标,但您也可以选择分发 通用二进制文件。通用二进制文件包含 aarch64
和 x86_64
可执行文件,可在两种架构上提供最佳体验。但是,请注意,这会大大增加您的包大小。
应用程序包自定义
Tauri 配置文件提供以下选项来自定义您的应用程序包:
- 包名称:您的应用程序的可读名称。由
package.productName
属性配置。 - 包版本:您的应用程序的版本。由
package.version
属性配置。 - 应用程序类别:描述您的应用程序的类别。由
tauri.bundle.category
属性配置。您可以在 此处 查看 macOS 类别的列表。 - 版权:与您的应用程序关联的版权字符串。由
tauri.bundle.copyright
属性配置。 - 包图标:您的应用程序的图标。使用
tauri.bundle.icon
数组中列出的第一个.icns
文件。 - 最低系统版本:由
tauri.bundle.macOS.minimumSystemVersion
属性配置。 - DMG 许可证文件:添加到
.dmg
文件的许可证。由tauri.bundle.macOS.license
属性配置。 - Entitlements.plist 文件:Entitlements 控制您的应用程序可以访问哪些 API。由
tauri.bundle.macOS.entitlements
属性配置。 - 异常域名:您的应用程序可以访问的不安全域名,例如
localhost
或远程http
域名。它是围绕NSAppTransportSecurity > NSExceptionDomains
设置NSExceptionAllowsInsecureHTTPLoads
和NSIncludesSubdomains
为 true 的便捷配置。有关更多信息,请参见tauri.bundle.macOS.exceptionDomain
。
这些选项会生成应用程序包 Info.plist 文件。您可以使用存储在 Tauri 文件夹(默认为 src-tauri
)中的自己的 Info.plist
文件扩展生成的文件。CLI 在生产环境中合并两个 .plist
文件,并且核心层在开发过程中将其嵌入到二进制文件中。