App Store で配布
Apple App Store は Apple 社が運営するアプリのマーケットプレースです。 この App Store を通じて、macOS および iOS を対象とした Tauri アプリを配布できます。
この章では、「アプリを直接 App Store に配布する」方法のみを扱います。 macOS の配布オプションや設定についての詳しい内容は、総合的な「App Bundle」の章を参照してください。
iOS と macOS のアプリを配布するには、Apple Developer プログラムに登録する必要があります。
さらに、macOS と iOS のコード署名を設定する必要があります。
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
bun 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 プログラムに登録した後、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
] の設定で独自のバンドル・バージョンの指定が可能です:
{ "bundle": { "iOS": { "bundleVersion": "100" } }}
Tauri は、iOS アプリに Xcode を利用しているため、iOS 用のアーカイブおよび配布に、Tauri CLI ではなく Xcode を使用できることに注意してください。 iOS プロジェクトを Xcode で開いてビルドするには、次のコマンドを実行します:
npm run tauri ios build -- --open
yarn tauri ios build --open
pnpm tauri ios build --open
deno task tauri ios build --open
bun tauri ios build --open
cargo tauri ios build --open
アプリを App Store にアップロードするには、まず、すべての必要な設定オプションが入力されていることを確認する必要があります。その後、App Bundle をパッケージ化し、署名された .pkg
ファイルを作成して、アップロードが可能になります。
以下の各項目で、このプロセスを順に説明します。
アプリが App Store 検証システムで受け入れられるには、アプリにいくつかの設定項目が含まれていなければなりません。
- Category(カテゴリー項目)
アプリを App Store に表示させるには、tauri.conf.json > bundle > category
(「カテゴリー項目」)を明示する必要があります:
{ "bundle": { "category": "Utility" }}
- Provisioning profile(プロビジョニング・プロファイル)
また、アプリを Apple に受理してもらうためには、「プロビジョニング・プロファイル」も作成しなければなりません。
Apple Developer サイトの「Identifiers(ID)」ページで新しい「App ID」を作成し、「Bundle ID」値が tauri.conf.json > identifier
で設定された ID(識別子)と一致していることを確認します。
次に Profiles ページに移動して、新しい「プロビジョニング・プロファイル」を作成します。 App Store で macOS アプリを配信する場合は、「Mac App Store Connect」プロファイルである必要があります。 適切な「アプリ ID」を選択し、「コード署名」に使用している「証明書」とリンクさせます。
「プロビジョニング・プロファイル」を作成したら、ダウンロードしてよくわかる場所に保存し、「App Bundle(アプリ・バンドル)に含まれるように Tauri を設定します:
{ "bundle": { "macOS": { "files": { "embedded.provisionprofile": "path/to/profile-name.provisionprofile"(プロビジョン・プロファイルのパスを記載) } } }}
- Info.plist(情報特性リスト)
情報特性リスト Information Property List。詳細は Info.plist(英語版)を参照してください。
アプリは「暗号化輸出規制」(仮訳)に準拠していなければなりません。 詳細については、Apple 社の公式ドキュメント(英語版)を参照してください。
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(エンタイトルメント/資格)
エンタイトルメント entitlement: 「権利・資格」を与えること、または与えられた「権利・資格」。ここでは情報やデータ、資源などを利用する資格・権利の付与や制限を行なうこと。Apple 社の用語解説はこちら。
アプリを App Store で配布するには、アクセス制御機能の App Sandbox を含んでいなければなりません。 さらに、「コード署名」資格設定で「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「team ID」の値に置き換える必要があることに注意してください。「team ID」は、プロビジョニング・プロファイル用に作成した Identifier の App ID Prefix
セクションにあります。
そして、macOS バンドル設定 tauri.conf.json > bundle > macOS > entitlements
でこの Entitlements.plist
ファイルを参照します。
{ "bundle": { "macOS": { "entitlements": "./Entitlements.plist" } }}
エンタイトルメント(資格)を適用するためには、コード署名を有効にしてアプリケーションをビルドする必要があります。
「App Sandbox」環境下でアプリを実行した際に、アプリが動作することを確認してください。
App Sandbox macOSに実装されているセキュリティ機能。詳細は アップル社のサイト を参照してください。
macOS アプリケーションは .pkg
ファイルとして App Store にアップロードする必要があります。
次のコマンドを実行して、アプリを macOS App Bundle(拡張子は .app
)としてパッケージ化します:
tauri build --bundles app --target universal-apple-darwin
設定オプションの詳細については、App Bundle による配布 の章を参照してください。
App Bundle から署名付きの .pkg
を生成するには、次のコマンドを実行します:
xcrun productbuild --sign "<certificate signing identity>" --component "target/universal-apple-darwin/release/bundle/macos/$APPNAME.app" /Applications "$APPNAME.pkg"
【注意】 $APPNAME の部分は、自分のアプリ名に置き換える必要があります。
これで、コマンドライン・ユーティリティ(CLI)の altool
を使用してアプリ・パッケージ を 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 を利用できるようになります。
altool ※ 「この公証ツールの「認証」機能は 2023-11-01 を以って廃止され、notarytool
へ移行される」旨の Apple Technote 2023-05-30 リリースが行なわれています。App store へのアプリ・アップロードは引き続き行なえるようですが、必要に応じて、最新状況の確認をお願いします。 “TN3147: Apple has deprecated altool
for the purposes of notarization”
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
bun 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
にあります。
IPA ファイル IPA file: iOSアプリケーションのアーカイブファイルのことで、iOS Package Archive(拡張子 .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 アプリは、認証に App Store Connect API キーを利用する altool
を使用してアップロードされます。
新しい API キーを作成するには、[App Store Connect Users and Access page] を開き、「Integrations(統合) > Individual Keys tab(個別のキー・タブ)」を選択し、「Add(追加)」ボタンをクリックして、「名前」と「the Developer access(開発者アクセス)」を選択します。
「APPLE_API_ISSUER
」(発行者 ID)はキー・テーブルの上側に表示され、「APPLE_API_KEY_ID
」はそのテーブルの「キー ID」列の値になります。
「秘密鍵 private key」のダウンロードも必要ですが、これは一回だけ実行され、ページをリロードした後にのみ表示されます(ボタンが、新しく生成されたキーに対応するテーブル行に表示されます)。
この秘密鍵ファイルのパスは、「AuthKey\_<APPLE_API_KEY_ID>.p8
」として、次のディレクトリのいずれかに保存する必要があります: <current-working-directory>/private_keys
、~/private_keys
、~/.private_keys
、あるいは ~/.appstoreconnect/private_keys
です。
【※ この日本語版は、「May 21, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT