コンテンツにスキップ
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 プログラムに登録した後、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 は、iOS アプリに Xcode を利用しているため、iOS 用のアーカイブおよび配布に、Tauri CLI ではなく Xcode を使用できることに注意してください。 iOS プロジェクトを Xcode で開いてビルドするには、次のコマンドを実行します:

npm run tauri ios build -- --open

アプリを App Store にアップロードするには、まず、すべての必要な設定オプションが入力されていることを確認する必要があります。その後、App Bundle をパッケージ化し、署名された .pkg ファイルを作成して、アップロードが可能になります。

以下の各項目で、このプロセスを順に説明します。

アプリが App Store 検証システムで受け入れられるには、アプリにいくつかの設定項目が含まれていなければなりません。

  • Category(カテゴリー項目)

アプリを App Store に表示させるには、tauri.conf.json > bundle > category(「カテゴリー項目」)を明示する必要があります:

tauri.conf.json
{
"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 を設定します:

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

$IDENTIFIERtauri.conf.json > identifier の値に、$TEAM_ID は Apple Developer「team ID」の値に置き換える必要があることに注意してください。「team ID」は、プロビジョニング・プロファイル用に作成した IdentifierApp ID Prefix セクションにあります。

そして、macOS バンドル設定 tauri.conf.json > bundle > macOS > entitlements でこの Entitlements.plist ファイルを参照します。

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

生成された 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