跳到內容
Tauri

App Store

Apple App Store 是由 Apple 維護的應用程式市場。您可以透過此 App Store 發佈目標為 macOS 和 iOS 的 Tauri 應用程式。

本指南僅涵蓋直接發佈應用程式到 App Store 的詳細資訊。有關 macOS 發佈選項和配置的更多資訊,請參閱通用的 App Bundle

需求

發佈 iOS 和 macOS 應用程式需要註冊 Apple Developer 計劃。

此外,您必須為 macOSiOS 設定程式碼簽署。

變更應用程式圖示

在執行 tauri ios init 設定 Xcode 專案後,您可以使用 tauri icon 命令來更新應用程式圖示。

npm run 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

macOS

若要將您的應用程式上傳到 App Store,首先您必須確保已設定所有必要的配置選項,以便您可以打包 App Bundle、建立簽署的 .pkg 檔案並上傳。

以下章節將引導您完成整個過程。

設定

您的應用程式必須包含一些配置,才能被 App Store 驗證系統接受。

  • 類別

您的應用程式必須定義其 tauri.conf.json > bundle > category,以便在 App Store 中顯示

tauri.conf.json
{
"bundle": {
"category": "Utility"
}
}
  • 佈建描述檔

您還必須為您的應用程式建立佈建描述檔,才能被 Apple 接受。

Identifiers 頁面中,建立一個新的 App ID,並確保其 “Bundle ID” 值與 tauri.conf.json > identifier 中設定的識別符號相符。

導航至 Profiles 頁面以建立新的佈建描述檔。對於 App Store macOS 發佈,它必須是 “Mac App Store Connect” 描述檔。選擇適當的 App ID 並連結您用於程式碼簽署的憑證。

建立佈建描述檔後,下載並將其儲存到已知位置,並配置 Tauri 以將其包含在您的應用程式包中

tauri.conf.json
{
"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 中參考該檔案

tauri.conf.json
{
"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

生成的 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