Mac App Storeガイド
このページでは、WailsアプリをMac App Storeで公開する方法について、概要を説明します。
前提条件
- Apple Developerアカウントを所持しておく必要があります。 詳しくは、Apple Developer Programのサイトを確認してください。
- 開発者ポータルで、証明書、ID、アプリを作成しておく必要があります。 詳しくは以下の手順に従ってください。
- Xcodeコマンドラインツールを、あなたのローカルマシンにインストールしておく必要があります。
証明書とIDの作成
- Apple Developerアカウントへアクセスします。
Certificates, Identifiers & Profiles内にあるIdentifiersをクリックし、新しいApp IDを登録します。 (com.example.app) のような形式にしてください。- 同じページで
Certificatesをクリックし、Mac App Storeディストリビューション用の新しい証明書を生成します。 それらの証明書をダウンロードし、ローカルマシンのKeychainにインポートしてください。
アプリ提出物の作成
- App Store Connectサイトへアクセスします。
- 新しいアプリケーションを登録し、前のステップで作成済みのバンドルIDをリンクします。
- Appleの要求する正規のスクリーンショットや説明文などを、アプリに追加します。
- アプリの新しいバージョンを作成します。
プロビジョニングプロファイルの作成
- Apple Developerプロフィールページへアクセスします。
- Mac App Storeへの配布用に、新しいプロビジョニングプロファイルを追加します。
- プロファイルタイプをMacに設定し、先ほど作成したアプリケーションのApp IDを選択します。
- Mac App Distribution証明書を選択します。
- 埋め込みプロビジョニングプロファイルに名前をつけ、作成されたプロファイルをダウンロードします。
Mac App Storeへの公開手順
AppleのApp Sandboxの有効化
Mac App Storeへ提出されるアプリは、AppleのApp Sandbox内で動作する必要があります。 そのためには、entitlements.plistファイルを作成しておく必要があります。 ファイルは、{PROJECT_DIR}/build/darwin/entitlements.plist配下に作成することを推奨します。
entitlementsファイルの例
ここでは、RiftShareというアプリのentitlementsファイルを例として示します。 参考として、アプリが必要とする権限を入力してください。 詳しくは、こちらのサイトをご覧ください。 チーム ID とアプリケーション名を上記で登録したものに置き換える必要があります。
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.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.files.downloads.read-write</key>
<true/>
<key>com.apple.application-identifier</key>
<string>TEAM_ID.APP_NAME</string>
<key>com.apple.developer.team-identifier</key>
<string>TEAM_ID</string>
</dict>
</plist>
Add the Embedded Provisioning Profile The Provisioning Profile created above needs to be added to the root of the application. embedded.provisionprofile という名前にする必要があります。