macOS 捆绑包
macOS 的 Tauri 应用程序通过 应用程序捆绑包(.app
文件)或 Apple 磁盘映像(.dmg
文件)进行分发。Tauri CLI 会自动将你的应用程序代码捆绑到这些格式中,并提供对应用程序进行代码签名和公证的选项。请注意,.app
和 .dmg
捆绑包**只能在 macOS 上创建**,因为跨编译尚无法使用。
macOS 和 Linux 上的 GUI 应用程序不会从你的 shell dotfiles(.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 Silicon、基于 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 silicon 机器。tauri build --target x86_64-apple-darwin
:针对基于 Intel 的机器。tauri build --target universal-apple-darwin
:生成 通用 macOS 二进制文件,该文件可在 Apple silicon 和基于 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 文件:权限控制你的应用程序可以访问哪些 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
文件,并且核心层在开发期间将它嵌入到二进制文件中。