(2021年版)iOSアプリをAppStoreで公開する手順まとめ
はじめに
以下の点に注意して読み進めてください。
- macOS 10.15.7 / Xcode 12.4で作業しました。
- Apple Developerの登録方法は説明しません。
- 無料アプリを前提に説明します。有料アプリの公開方法は説明しません。
- Apple DeveloperやAppStore Connectサイトの見た目は頻繁に変わります。そのため、あえてスクリーンショットは添付していません。
それでは、手順1から手順10まで順番に作業を進めてください。
(手順1)アプリのスクリーンショットを撮影する
- Xcodeを起動してProducts→Destinationを選択します。
- iPhone 8 Plusを選択します。
- シミュレーターが起動したらスクリーンショットを撮影します。ショートカットキー
Command + S
で撮影できます。 - 同じ手順でiPhone 12 Proのスクリーンショット を撮影します。
- おわり
(補足)スクリーンショットの画面サイズについて
アプリの申請には5.5インチと6.5インチ、2種類のスクリーンショットが必要になります。枚数はそれぞれ1枚以上必要です。
画面のサイズが5.5インチまたは6.5インチであれば、シミュレーターはどの機種を選んでも構いません。iPhoneの機種ごとの画面サイズについて、詳細は以下を確認してください。
(補足)シミュレーターの言語設定について
日本語のアプリを開発している場合、まずはシミュレーターの言語を設定してください。手順は以下のとおりです。
- シミュレーターが起動したら
Command + Shift + H
を押してホーム画面に移動します。 - Settingsアプリを起動してGeneral→Languageを選択します。
- Japaneseを選択します。
- シミュレーターが再起動して日本語表示に切り替わります。
- スクリーンショット を撮影してください。
(手順2)App IDを作成する
- Safariを起動してApple Developerを開きます。
- Certificates, IDs & Profilesを選択します。
- Identifiersを選択します。
- 「+」ボタンを押して新規作成します。
- App IDsを選択してContinueボタンを押します。
- Select a typeと表示されたらAppを選択してContinueボタンを押します。
- DescriptionにApp IDの説明を入力します。(例:
App ID for My App
) - Bundle IDとしてExplicitを選択します。
- テキストボックスにアプリ作成の際に設定したBundle IDを入力します。
- Capabilities(アプリ実行に必要な権限)一覧の中に必要なものがあればチェックを入れます。
- Continueボタンを押します。
- Registerボタンを押します。
- おわり
(手順3)アプリをAppStore Connectに登録する
- AppStore Connectを開きます。
- My Appを選択します。
- Appsの右側にある「+」ボタンを押して新規作成します。
- プラットフォームとしてiOSにチェックを入れます。
- Bundle IDとして手順2で作成したApp IDを選択します。
- アプリの名前や対応言語、SKUなどを入力します。
- User AccessとしてFull Accessを選択します。
- Createボタンを押すと、アプリの詳細情報を編集する画面が表示されます。
- おわり
(補足)App ID・Bundle ID・SKUについて
App IDはBundle IDの別名です。Apple DeveloperではApp IDと表示されていたり、AppStore ConnectではBundle IDと表示されていたり、表記方法が統一されていないようです。
App ID(Bundle ID)はアプリの識別子です。一方、SKUはAppStoreでアプリを管理するための識別子です。売上などの管理用に使われるものであり、SKUはユーザーに表示されません。
SKUに命名規則はありません。ただし、App001
のように適当な名前は紛らわしいので、おすすめしません。私の場合、Bundle IDがcom.example.MyApp
ならSKUはComExampleMyApp
のように設定しています。
(手順4)アプリの詳細情報を編集する
- 手順1で作成したスクリーンショット や説明文、プライバシー情報や対象年齢などを設定します。
- Buildは設定せず空欄のままにします。
- 入力が終わったらSaveボタンを押します。
- Safariを閉じます。
- おわり
(補足)iPadのスクリーンショットについて
アプリの詳細情報を編集する画面にはiPadのスクリーンショットを設定する欄があります。この部分は設定しなくてもアプリの申請が可能です。
もしiPhone用アプリを開発しているのにiPadのスクリーンショットが未設定と表示されたら、Xcodeの設定を見直してください。手順は以下のとおりです。
- Xcodeを起動します。
- 画面左側のファイル一覧から
.xcodeproj
を選択します。 - General→Deployment Info→iPadのチェックを外します。
(手順5)Certificateを作成する
- Xcodeを起動してPreferences→Accountを選択します。
- もしログインしていなければApple Developerのアカウントでログインします。
- Manage Certificatesボタンを押します。
- Create a certificateボタンを押します。
- Apple Distributionを選択するとCertificateが追加されます。
- おわり
(手順6)Provisioning Profileを作成する
- Safariを起動してApple Developerを開きます。
- Certificates, IDs & Profilesを選択します。
- Profilesを選択します。
- 「+」ボタンを押して新規作成します。
- AppStoreを選択してContinueボタンを押します。
- App IDとして手順2で作成したものを選択します。
- Select Certificatesと表示されたら手順5で作成したCertificateを選択します。
- Provisioning Profile Nameに適当な名前を入力します。(例:
Provisioning Profile for My App
) - Generateボタンを押します。
- Downloadボタンを押して
.mobileprovision
ファイルをダウンロードします。 - おわり
(手順7)アプリを検証する
- Xcodeを起動してProducts→Archiveを選択します。
- しばらく待ちます。
- アーカイブ一覧画面が表示されたらValidate Appボタンを押します。
- Include bitcode for iOS contentにチェックを入れます。
- Upload your app's symbols to receive symbolicated reports from Appleにチェックを入れます。
- Nextボタンを押します。
- Manually manage signingを選択してNextボタンを押します。
- Distribution certificateとして手順5で作成したCertificateを選択します。
- Select Profile→Importを選択して、手順6で作成した
.mobileprovision
ファイルを選択します。 - Macのパスワードを入力します。
- アーカイブの詳細情報が表示されたらValidateボタンを押します。
12 しばらく待ちます。 - 「App "MyApp" successfully validated.」のように表示されたら成功です。
- Doneボタンを押してダイアログを閉じます。
- おわり
(補足)Bit codeとシンボルについて
Bit codeはiOS 9から導入されたバイナリの中間表現です。この機能はアプリ配信の最適化に使われます。通常はチェックを入れたままで構いません。
シンボルとはソースコードに含まれる変数やメソッドなどの名前のことです。シンボルとソースコードのファイル名や行番号の対応づけを行う場合、Upload your app's symbols ...にチェックを入れます。チェックを入れなければ不具合が発生したときにデバッグが困難になります。チェックを外すのはお勧めしません。
(手順8)アプリをアップロードする
- 手順7が成功するとアーカイブ一覧画面に戻ります。
- Distribute Appボタンを押します。
- Select a destinationの中からUploadを選択してNextボタンを押します。
- Include bitcode for iOS contentにチェックを入れます。
- Upload your app's symbols to receive symbolicated reports from Appleにチェックを入れます。
- Nextボタンを押します。
- Manually manage signingを選択してNextボタンを押します。
- Distribution certificateとして手順5で作成したCertificateを選択します。
- Select Profile→Importを選択して、手順6で作成した
.mobileprovision
ファイルを選択します。 - Macのパスワードを入力します。
- アーカイブの詳細情報が表示されたらUploadボタンを押します。
12 しばらく待ちます。 - 「App "MyApp" successfully uploaded.」のように表示されたら成功です。
- Doneボタンを押してXcodeを閉じます。
- おわり
(補足)アップロードをやり直したい
どんなに気をつけていても、メール送信した直後に誤字脱字を発見することがあります。アプリ開発も同じです。完成したと思っていたら、アップロード直後に不具合を発見することがあります。そんなときは焦らずアップロードをやり直しましょう。
一度アップロードした内容を削除したり上書きすることはできません。ビルド番号を変更して再アップロードを行ってください。手順は以下のとおりです。
- アーカイブ一覧画面を閉じます。
- 画面左側のファイル一覧から
.xcodeproj
を選択します。 - General→Identity→Buildを編集します。
- 現在のビルド番号が1であれば2に書き換えます。
- 手順8にしたがって、もう一度アップロードを行います。
(手順9)アプリのビルド情報を編集する
- 手順8が完了したら、しばらく待ちます。
- 「App Store Connect: Version 1.0 (1) for MyApp has completed processing.」のような件名のメールが届きます。
- メールが届いたら、Safariを起動してAppStore Connectを開きます。
- My Appを選択します。
- 手順5で作成した編集途中のアプリを選択します。
- Buildの右側にある「+」ボタンを押します。
- アップロード済みアプリの一覧が表示されます。
- バージョン番号とビルド番号を確認して、アプリを選択したらDoneボタンを押します。
- Export Compliance Informationに回答します。通常はNOを選択します。
- Doneボタンを押します。
- おわり
(補足)Export Compliance Informationについて
アプリがHTTPSなどの暗号化通信を行っている場合はYES、そうでなければNOを選択します。しかし、通常はNOを選択すれば問題ないはずです。なぜなら他のプラットフォーム、例えばGoogle Play Storeの場合は暗号化通信についての申告は必要ないためです。
文字どおり解釈するのであれば、画像をHTTPSのGETリクエストで取得するだけでも輸出規制の暗号化通信に該当します。Appleが厳しいのか、Googleが緩いのか、実際のところはわかりません。
なお、回答としてNOを選択した結果、不都合が生じても私は一切責任を負いません。回答は各自の責任で判断してください。
参考:iOSアプリ提出の輸出コンプライアンスで、通信にHTTPSを使っているだけの場合の解釈 - Qiita
(手順10)アプリを申請する
- 手順9が完了したら、Submit for Reviewボタンを押します。
- 「MyApp is now "Waiting for Review", ...」というメールが届きます。
- しばらく待ちます。審査が開始されるまで数時間から数日かかる場合があります。
- 「MyApp is now "In Review" ...」というメールが届きます。
- しばらく待ちます。審査結果のメールが届くまで数時間から数日かかる場合があります。
- 「MyApp is now "Ready for Sale", ...」のような内容のメールが届きます。
- AppStoreでアプリが公開されていることを確認してください。
- おめでとうございます
おわりに
内容の不備や誤字脱字などがあれば知らせていただけると助かります。