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 二進位檔,收集所有外部二進位檔和資源,最後產生整齊的特定平台套件和安裝程式。
設定最低系統版本
macOS 上執行 Tauri 應用程式所需的最低作業系統版本為 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 silicon 電腦可以透過稱為 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
檔案,而核心層會在開發期間將其嵌入二進位檔中。