跳到内容
Tauri

应用商店

Apple App Store 是由苹果维护的应用商店。您可以将您的 Tauri 应用分发到 macOS 和 iOS 平台。

本指南仅涵盖直接分发应用到 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 计划后,将 Tauri 应用分发到 App Store 的第一步是在 App Store Connect 中注册您的应用。

Tauri CLI 可以为您打包 macOS 和 iOS 应用。要求必须在 macOS 机器上运行。

Tauri 从 [tauri.conf.json > version] 中定义的值派生 CFBundleVersion。如果您需要不同的包版本方案(例如顺序编码),可以在 [tauri.conf.json > bundle > iOS > bundleVersion] 或 [tauri.conf.json > bundle > macOS > bundleVersion] 配置中设置自定义包版本。

tauri.conf.json
{
"bundle": {
"iOS": {
"bundleVersion": "100"
}
}
}

请注意,Tauri 利用 Xcode 进行 iOS 应用开发,因此您可以使用 Xcode 来归档和分发 iOS 应用,而不必使用 Tauri CLI。要打开 Xcode 中的 iOS 项目进行构建,必须运行以下命令:

npm run tauri ios build -- --open

要将应用上传到 App Store,首先必须确保设置了所有必需的配置选项,以便您可以打包应用程序包 (App Bundle),创建已签名的 .pkg 文件并进行上传。

以下章节将指导您完成整个流程。

您的应用必须包含某些配置,才能被 App Store 验证系统接受。

  • 类别

您的应用必须定义其 tauri.conf.json > bundle > category,才能在 App Store 中显示。

tauri.conf.json
{
"bundle": {
"category": "Utility"
}
}
  • 预置描述文件 (Provisioning Profile)

您还必须为您的应用创建一个预置描述文件,才能被苹果接受。

Identifiers(标识符)页面中,创建一个新的 App ID,并确保其“Bundle ID”值与 tauri.conf.json > identifier 中设置的标识符相匹配。

导航到 Profiles(描述文件)页面创建一个新的预置描述文件。对于 Mac App Store 分发,它必须是“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 中分发。此外,您还必须在代码签名权限中设置您的 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"
}
}
}

现在,您必须在启用代码签名的情况下构建应用程序,以便应用权限。

请确保您的应用在 App Sandbox 上下文中运行时能够正常工作。

您必须以 .pkg 文件的形式将 macOS 应用程序上传到 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 密钥来上传您的应用。有关详细信息,请参阅身份验证章节

您的应用将由苹果进行验证,如果通过审核,将可在 TestFlight 中使用。

要构建您的 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 密钥来上传您的应用。有关详细信息,请参阅身份验证章节

您的应用将由苹果进行验证,如果通过审核,将可在 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,并存放在以下目录之一中:<当前工作目录>/private_keys~/private_keys~/.private_keys~/.appstoreconnect/private_keys


© 2026 Tauri 贡献者。CC-BY / MIT