macOS打包
适用于 macOS 的 Tauri 应用程序通过应用程序包(.app 文件)或 Apple 磁盘映像(.dmg 文件)发布。Tauri CLI 会自动以这些格式打包应用程序代码,并提供对应用程序进行编码设计和公证的选项。请注意,.app 和 .dmg 捆绑文件只能在 macOS 上创建,因为交叉编译还不能使用。
macOS 和 Linux 上的图形用户界面应用程序不会从 shell 点文件(.bashrc
、.bash_profile
、.zshrc
等)中继承 $PATH
。查看 Tauri 的 fix-path-env-rs即可修复这一问题。
要将 Tauri 应用程序编译并打包到一个可执行文件中,只需运行以下命令即可:
- npm
- Yarn
- pnpm
- Cargo
npm run tauri build
yarn tauri build
pnpm 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、基于英特尔的 Mac 电脑或通用 macOS 二进制文件编译应用程序。默认情况下,CLI 会根据机器的架构编译二进制文件。如果要为不同的目标机编译,必须先运行 rustup target add aarch64-apple-darwin
或 rustup target add x86_64-apple-darwin
,为该目标机安装缺失的 rust 目标机,然后使用 --target
标志编译应用程序:
tauri build --target aarch64-apple-darwin
: 针对苹果芯片的机器。tauri build --target x86_64-apple-darwin
: 针对英特尔芯片的机器。tauri build --target universal-apple-darwin
: 制作了一个通用的 macOS 二进制版本,可在苹果芯片和英特尔芯片的 Mac 上运行。
虽然苹果芯片可以通过一个名为 Rosetta 的翻译层运行为基于英特尔的 Mac 编译的应用程序,但由于处理器指令的翻译,这会导致性能下降。通常的做法是让用户在下载应用程序时选择正确的目标,但你也可以选择发布通用二进制文件。通用二进制文件包括 aarch64 和 x86_64 两种可执行文件,让您在两种架构上都能获得最佳体验。但请注意,这会大大增加捆绑包的大小。
自定义应用程序包
Tauri配置文件提供以下选项,用于自定义应用程序包:
- Bundle name: 应用程序的可读名称。由
package.productName
属性配置。 - Bundle version: 应用程序的版本。由
package.version
属性配置。 - Application category: 描述应用程序的类别。由
tauri.bundle.category
属性配置。你可以在此查看macOS 类别列表。 - Copyright: 与应用程序相关的版权字符串。由
tauri.bundle.copyright
属性配置。 - Bundle icon: 应用程序的图标。使用
tauri.bundle.icon
数组中列出的第一个.icns
文件。 - Minimum system version: 由
tauri.bundle.macOS.minimumSystemVersion
属性配置。 - DMG license file: 添加到
.dmg
文件中的许可证。通过tauri.bundle.macOS.license
属性进行配置。 - Entitlements.plist file: 权限控制着应用程序可以访问哪些 API。由
tauri.bundle.macOS.entitlements
属性配置。 - Exception domain: 您的应用程序可以访问的不安全域,如
localhost
或远程http
域。这是围绕NSAppTransportSecurity > NSExceptionDomains
设置NSExceptionAllowsInsecureHTTPLoads
和NSIncludesSubdomains
为 true 的方便配置。更多信息,请参阅tauri.bundle.macOS.exceptionDomain
。
这些选项可生成应用程序捆绑包 Info.plist 文件。您可以用自己存储在 Tauri 文件夹(默认为 src-tauri
)中的 Info.plist
文件扩展生成的文件。在生产过程中,CLI 会合并这两个 .plist
文件,而在开发过程中,核心层会将其嵌入二进制文件。