App Store
Apple App Store 是由 Apple 維護的應用程式市場。您可以透過此 App Store 發佈目標為 macOS 和 iOS 的 Tauri 應用程式。
本指南僅涵蓋直接發佈應用程式到 App Store 的詳細資訊。有關 macOS 發佈選項和配置的更多資訊,請參閱通用的 App Bundle。
需求
發佈 iOS 和 macOS 應用程式需要註冊 Apple Developer 計劃。
變更應用程式圖示
在執行 tauri ios init
設定 Xcode 專案後,您可以使用 tauri icon
命令來更新應用程式圖示。
npm run tauri icon /path/to/app-icon.png -- --ios-color #fff
yarn tauri icon /path/to/app-icon.png --ios-color #fff
pnpm tauri icon /path/to/app-icon.png --ios-color #fff
deno task tauri icon /path/to/app-icon.png --ios-color #fff
cargo tauri icon /path/to/app-icon.png --ios-color #fff
--ios-color
參數定義了 iOS 圖示的背景顏色。
設定
在註冊 Apple Developer 計劃後,在 App Store 中發佈 Tauri 應用程式的第一步是在 App Store Connect 中註冊您的應用程式。
建置和上傳
Tauri CLI 可以為 macOS 和 iOS 打包您的應用程式。在 macOS 機器上執行是必要條件。
請注意,Tauri 為 iOS 應用程式利用 Xcode,因此您可以使用 Xcode 來為 iOS 進行封存和發佈,而不是 Tauri CLI。若要在 Xcode 中開啟 iOS 專案以進行建置,您必須執行以下命令
npm run tauri ios build -- --open
yarn tauri ios build --open
pnpm tauri ios build --open
deno task tauri ios build --open
cargo tauri ios build --open
macOS
若要將您的應用程式上傳到 App Store,首先您必須確保已設定所有必要的配置選項,以便您可以打包 App Bundle、建立簽署的 .pkg
檔案並上傳。
以下章節將引導您完成整個過程。
設定
您的應用程式必須包含一些配置,才能被 App Store 驗證系統接受。
- 類別
您的應用程式必須定義其 tauri.conf.json > bundle > category
,以便在 App Store 中顯示
{ "bundle": { "category": "Utility" }}
- 佈建描述檔
您還必須為您的應用程式建立佈建描述檔,才能被 Apple 接受。
在 Identifiers 頁面中,建立一個新的 App ID,並確保其 “Bundle ID” 值與 tauri.conf.json > identifier
中設定的識別符號相符。
導航至 Profiles 頁面以建立新的佈建描述檔。對於 App Store macOS 發佈,它必須是 “Mac App Store Connect” 描述檔。選擇適當的 App ID 並連結您用於程式碼簽署的憑證。
建立佈建描述檔後,下載並將其儲存到已知位置,並配置 Tauri 以將其包含在您的應用程式包中
{ "bundle": { "macOS": { "files": { "embedded.provisionprofile": "path/to/profile-name.provisionprofile" } } }}
- Info.plist
您的應用程式必須符合加密出口法規。有關更多資訊,請參閱 官方文件。
在 src-tauri 資料夾中建立 Info.plist 檔案
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>ITSAppUsesNonExemptEncryption</key> <false/> # or `true` if your app uses encryption</dict></plist>
- Entitlements
您的應用程式必須包含 App Sandbox 功能才能在 App Store 中發佈。此外,您還必須在程式碼簽署 Entitlements 中設定您的 App ID 和 Team ID。
在 src-tauri
資料夾中建立 Entitlements.plist
檔案
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.application-identifier</key> <string>$TEAM_ID.$IDENTIFIER</string> <key>com.apple.developer.team-identifier</key> <string>$TEAM_ID</string></dict></plist>
請注意,您必須將 $IDENTIFIER
替換為 tauri.conf.json > identifier
值,並將 $TEAM_ID
替換為您的 Apple Developer 團隊 ID,這可以在您為佈建描述檔建立的 Identifier 中的 App ID Prefix
區段中找到。
並在 macOS 包配置 tauri.conf.json > bundle > macOS > entitlements
中參考該檔案
{ "bundle": { "macOS": { "entitlements": "./Entitlements.plist" } }}
您現在必須在啟用程式碼簽署的情況下建置您的應用程式,才能套用 Entitlements。
確保您的應用程式在 App Sandbox 環境中執行時能正常運作。
建置
您必須將您的 macOS 應用程式以 .pkg
檔案上傳到 App Store。執行以下命令以將您的應用程式打包為 macOS 應用程式包 (.app
擴展名)
tauri build --bundles app --target universal-apple-darwin
有關配置選項的更多資訊,請參閱 App Bundle 發佈指南。
若要從您的應用程式包生成簽署的 .pkg
,請執行以下命令
xcrun productbuild --sign "<certificate signing identity>" --component "target/universal-apple-darwin/release/bundle/macos/$APPNAME.app" /Applications "$APPNAME.pkg"
請注意,您必須將 *\$APPNAME* 替換為您的應用程式名稱。
上傳
現在您可以使用 altool
CLI 將您的應用程式 PKG 上傳到 App Store
xcrun altool --upload-app --type macos --file "$APPNAME.pkg" --apiKey $APPLE_API_KEY_ID --apiIssuer $APPLE_API_ISSUER
請注意,altool
需要 App Store Connect API 金鑰才能上傳您的應用程式。有關更多資訊,請參閱身份驗證章節。
您的應用程式隨後將由 Apple 驗證,如果獲得批准,將在 TestFlight 中提供。
iOS
若要建置您的 iOS 應用程式,請執行 tauri ios build
命令
npm run tauri ios build -- --export-method app-store-connect
yarn tauri ios build --export-method app-store-connect
pnpm tauri ios build --export-method app-store-connect
deno task tauri ios build --export-method app-store-connect
cargo tauri ios build --export-method app-store-connect
生成的 IPA 檔案可以在 src-tauri/gen/apple/build/arm64/$APPNAME.ipa
中找到。
請注意,您必須將 *\$APPNAME* 替換為您的應用程式名稱。
現在您可以使用 altool
CLI 將您的 iOS 應用程式上傳到 App Store
xcrun altool --upload-app --type ios --file "src-tauri/gen/apple/build/arm64/$APPNAME.ipa" --apiKey $APPLE_API_KEY_ID --apiIssuer $APPLE_API_ISSUER
請注意,altool
需要 App Store Connect API 金鑰才能上傳您的應用程式。有關更多資訊,請參閱身份驗證章節。
您的應用程式隨後將由 Apple 驗證,如果獲得批准,將在 TestFlight 中提供。
身份驗證
iOS 和 macOS 應用程式是使用 altool
上傳的,它使用 App Store Connect API 金鑰進行身份驗證。
若要建立新的 API 金鑰,請開啟 App Store Connect 的使用者和存取權限頁面,選擇「整合」>「個別金鑰」標籤,點擊「新增」按鈕並選擇名稱和「開發者」存取權限。APPLE_API_ISSUER
(發行者 ID)顯示在金鑰表格上方,而 APPLE_API_KEY_ID
是該表格「金鑰 ID」欄位中的值。您還需要下載私鑰,這只能執行一次,並且僅在頁面重新載入後可見(按鈕顯示在新建金鑰的表格列上)。私鑰檔案路徑必須儲存為 AuthKey\_<APPLE_API_KEY_ID>.p8
在以下其中一個目錄中:<current-working-directory>/private_keys
、~/private_keys
、~/.private_keys
或 ~/.appstoreconnect/private_keys
。
© 2025 Tauri 貢獻者。CC-BY / MIT