iOSアプリの申請方法って煩雑でよく分からないですよね...。
そこで今回は、iOSアプリの申請方法について、iOSアプリを8つ以上リリースした経験がある私が、分かりやすく解説します。
この記事を読むことで、iOSアプリの申請と手続きの方法が全て分かるようになります。
また、今回ご紹介するのは、FlutterのiOSアプリであるため、Flutterで普段開発されている方は特に参考になるかと思います。(基本的な申請手順はネイティブでもFlutterでも変わりません。)
環境
- Xcode 14.2
1.Apple Developer Programに参加
Apple Developer Programへ登録しましょう。登録することが、アプリをApp Storeへリリースする上での必須条件となります。
Apple Developer Programの年間登録料は99米ドルになります。(公式サイトより)
日本円にすると「12,000〜15,000円」ほどの費用が毎年かかることになります。
2.App Store Connectに新アプリを登録
まずは、App Store Connectに新アプリの登録作業を行なっていきます。
Identifiersの登録
App Store ConncetのCertificates, Identifiers & Profiles にアクセスします。
左メニューの一覧から「Identifiers」を選択し、「Identifiers」の横にある「+」ボタンからリリースしたい新アプリを追加登録します。
*たまに、開発の段階でSignInしているなどの理由から、Identifiersに登録済みの場合があります。
今回は、アプリ用なので「App IDs」にチェックが入っていることを確認して「Continue」しましょう。
続いて、こちらも「App」が選択されていることを確認して「Continue」を押しましょう。
次にDescriptionとBundle IDを登録します。
Descriptionは、自分がどのアプリか分かるように付けてもらえれば大丈夫です。(後から変更も可能です。)
Bundle IDは、リリースしたいアプリのBundle IDを登録しましょう。Bundle IDは、Xcodeから確認することができます。
入力が完了したら「Continue」をクリックしましょう。
これにて、Identifierの登録は完了となります。
Appの登録
続いて、「App」に追加します。App Store ConnectのAppへアクセスします。
そうすると、Appの右側に「+」ボタンがあるので、それをクリックします。そして「新規App」をクリックしましょう。
そうすると、以下のようなダイアログが表示されます。
プラットフォームは、iOSアプリなのでiOSにチェックを付けましょう。(*ご自身のアプリに沿う選択肢を選びましょう。)
名前は、App Store Connectのコンソール上に表示されるものなので、ご自身でアプリが分かるように付けてもらえれば大丈夫です。
プライマリ言語は、ご自身のアプリに沿った言語を選択しましょう。基本的に日本向けであれば、日本語で問題ないですが、英語でも大丈夫です。
バンドルIDは、先ほど生成した、Identifiersに登録した際のDescriptionに記載したものが選択すると出てくるので、それを選びましょう。
SKUは、アプリの管理番号のようなものなので、どのアプリか分かるような名前をつけましょう。迷うのであれば、バンドルIDと同じで問題ありません。(*SKU自体は、ユーザーに見えるものではありません。)
ユーザアクセスは、アプリ内で一部のユーザーしかアクセスできないものがある場合は、「アクセス制限あり」、ない場合は「アクセス制限なし」を選択しましょう。
すべて入力が完了したら、「作成」ボタンを押しましょう。
これで、App Store Connectへの新アプリ登録が完了しました!
3.リリースビルドの実施
続いて、リリースビルドを実施していきます。
リリースビルド実施前の確認
リリースビルド実施前に確認しておくべき点をまとめてみました。
アプリアイコンの設定
アプリアイコンの設定をしましょう。
Flutterでのアイコン設定はこちらの記事にまとめていますので、是非ご覧ください。
アプリ名の設定
アプリ名の設定も忘れず行いましょう。(私は、初めてアプリを出す際に適当な名前のまま出してしまったことがあります...。)
多言語化対応
多言語に対応する場合は、このタイミングで実施しましょう。
多言語対応には、アプリの中身の単語だけでなく、アプリ名の多言語対応も必要になってきます。
Flutterでの実装方法は、こちらの記事がありますので、是非ご覧ください。
広告IDなどを商用向けへ変更
広告IDなど、商用向けに変更されているか確認を行いましょう。
プライバシーポリシー・利用規約の作成
こちらが一番重めの対応かもしれません。プライバシーポリシーに関しては、URLとアプリ内でもそれが確認できるような状態にすることが求められます。アプリ内でプライバシーポリシーを確認できない場合は、リジェクトされる可能性が高いです。(以前リジェクトされた経験があります...。)
その他にやっておいた方が良いこと(Push Notifications)
2022年ごろの申請でリリースバイナリに関して、以下の警告を受けました。
ITMS-90078: Missing Push Notification Entitlement
警告を受けないように対応するには以下を実施すると良いでしょう。
(*プッシュ通知をアプリの機能として実装していない場合の対応です。)
Xcodeを開きます。
Runner > Runner > Signing & Capabilities > + Capavilityと順番に選択します。
そうすると、以下のダイアログが出てくるので、「Push Notifications」を追加します。
これで、対応完了です。
こちらの内容はこの記事が元になります。
リリースビルドとアップロード
いよいよリリースビルドとアップロード作業です。
Xcodeを開きましょう。Flutterで開発している場合は、iosディレクトリを右クリックから「Flutter」> 「Open iOS module in Xcode」によって、Xcodeでプロジェクトが簡単に開けます。
Xcodeを開いたら上部のビルド端末が表示されている部分を「Any iOS Device (arm64)」に変更しましょう。
次に、「Product」 > 「Archive」を実施します。
しばらくすると、以下のダイアログが表示されます。
ビルドしたバージョンが選択されていることを確認して、右側の「Distribute App」をクリックしましょう。
するとこのようなダイアログが表示されます。
こちらは、「App Store Connect」を選択して「Next」を押します。
「Upload」を選択しましょう。
こちらは特に変更せずに「Next」を押します。
「Automatically manage signing」をチェックし、「Next」を押しましょう。
こちらのダイアログでは、間違っていないかの最終確認をして、「Upload」を実行しましょう。
するとアップロードが始まります。アプリのサイズによっても変わる可能性がありますが、少し時間がかかりますのでゆっくりと待ちましょう。
完了するとこのような画面が表示されます。
これにてアップロード作業は完了です。
あとは、アップロードしたバイナリとこれまでApp Store Connectで登録した情報を紐付ける作業になります。
以下画面の「ビルド」のところが最初は特に何もボタンがない状態かと思います。
ですが、アップロード作業後に、しばらく待つとこのように「+」のボタンと「ビルドの追加」ボタンが表示されます。表示されたらクリックしましょう。
*表示が変わるまでにかなりの時間(30分-1時間程度)がかかる場合があるので、こちらも気長に待ちましょう。
ビルドの追加では、アップロードされたビルドであるか確認の上、選択し、「完了」をクリックしましょう。
以上でリリースビルド、アップロードと登録のすべてが完了しました。
4.App Store ConnectにApp情報の登録と申請
続きまして、App Store Connectに新アプリの情報を登録していきます。基本的に、App Storeに表示される情報を登録していく作業になります。
まずは、「スクリーンショット」です。最低限必要なのは以下です。
- 「5.5インチ」(例:iPhone 8 Plus)スクリーンショット2枚
- 「6.5インチ」(例:iPhone 13 Pro Max)スクリーンショット2枚
- 「12.9インチ(第2世代)」(例:iPad Pro12.9インチ第五世代)スクリーンショット2枚
- 「12.9インチ(第6世代)」(例:iPad Pro12.9インチ第五世代)スクリーンショット2枚
「12.9インチ(第2世代)」「12.9インチ(第6世代)」は同じサイズなので、同じスクリーンショットで申請しても通りますが、厳密にはレイアウトが違うので、対応する世代の機種でスクリーンショットを撮る方が良いでしょう。
スクリーンショットは、リリースする際の大変な作業の1つで注意する点などがたくさんあります。中でも気になる4点について説明します。
App Storeでの見え方
これらのスクリーンショットは、App Storeに表示されるもので特に重要です。縦向きにしたときは最初の2枚が検索結果などで最初に表示されます。(横向きであれば1枚のみが最初に表示されます。)
画像のサイズ
少しでもサイズが違うとエラーが出て添付できません...。かなり厳しく1pxのズレでも指摘されます。シミュレーターの機種によっては、スクリーンショットそのままでも1pxズレがあり添付できないことがあります。ですので、上記で例としてご紹介した機種でスクショを撮るのがおすすめです。
紹介画像
紹介画像として編集したものを掲載する事は可能ですが、スクリーンショットと全く同じサイズにする必要があります。サイズは、上記の「インチ」に対応する大きさになります。
また、スクショが画像の一部に含まれているデザインにしないといけないなどの要件があるため、そういった点には注意が必要です。
動画も可能
10-30秒の映像も掲載可能です。こちらも同様にサイズは気にする必要があります。
スクリーンショットを準備できたら、ドラッグ&ドロップで追加しましょう。
続きまして、「プロモーション用テキスト」、「概要」、「キーワード」、「サポートURL」、「バージョン」、「著作権」(必須項目)を順番に埋めていきます。こちらもすべてApp Storeに掲載されるものです。
「プロモーション用テキスト」については、170文字が最大で、アプリページの一番最初の方に表示されるテキストです。また、アプリのリリースやアップデートがなくとも編集が可能な領域です。アプリのイベントなどの開催を行う際はそこでプロモーションができます。
「概要」については、アプリページで、プロモーション用テキストのすぐ下に表示されます。4,000字が上限で、リリースやアップデートのタイミングでしか編集できません。アプリページでは、プロモーション用テキストと概要のテキストが分れておらず、続いた文章のように見えるので、不自然ないように書くのがおすすめです。(プロモーション用テキストの続きの文章だと思って書きましょう。)
「キーワード」については、検索でヒットして欲しいワードを入れていきます。
「サポートURL」は、質問などをユーザーがする際に投稿できる機能が必要です。お問い合わせフォームなどが該当します。
「バージョン」は、自動入力されていると思います。
「著作権」は、アプリの独占権を入手した年、所有する人物または組織の名前を順に記入します。こちらもApp Storeに表示されます。
続いて、「App Reviewに関する情報」です。こちらは、審査員がレビューをする際に必要な情報を記入することです。サインインをしないアプリであれば、「サインインが必要です」のチェックを外しましょう。
サインインが必要なアプリであれば、サインインできるような情報を記載する必要があります。
続いて、左の項目の「App情報」を埋めていきます。
「名前」、「サブタイトル」、「プライマリ言語」、「カテゴリ」を順に埋めていきましょう。
名前とサブタイトルは、App Storeでも検索結果などで目に入るので、ダウンロードしてもらえるような工夫が重要になってきます。
続いて、「コンテンツ配信権」です。
このようなポップアップが表示されます。権利を持っているのかどうかという観点で聞かれるので、ご自身のアプリに合う回答を選びましょう。
続いて、「価格および配信状況」についてです。こちらは価格を無料の場合であっても入力する必要があるので、忘れずに行いましょう。
続いて、左項目にある「Appのプライバシー」についてです。
「プライバシーポリシーURL」に関しては、アプリのプライバシーポリシーを作成したURLを添付しましょう。
また、その下にアプリのデータ利用に関する項目についても回答する必要があります。こちらの記事でその回答方法について、詳細をご紹介しておりますので、ぜひ参考にしてみてください。
これで登録するべき最低限の内容はすべて完了しました。入力項目の確認をしっかりとできたら、提出しましょう。
以下の画面ができたら「App Reviewに提出」をクリックすると提出されます。
大変な作業でしたが、これでアプリのリリース申請が完了です!
審査には、早いと1日くらいで(基本日本は夜中の間に)通りますが、アメリカやイギリス時間の土日にあたる時間は、審査がストップしている印象です。
また、クリスマス休暇などもあり、そういった時期には、アプリの審査がストップまたは遅くなる傾向にあります。過去2-3年ほどは、クリスマス時期も審査をするようになりました。
まとめ
iOSアプリの申請作業について、手順をご紹介してきました。
確認が必要な項目や準備が大変だとは思いますが、このリリース作業を経て審査を通れば、あなたの作ったアプリが世の中にリリースされます。
アプリ開発の最後のステップでもあるリリース作業(ここからが始まりかもしれませんが....)をするにあたり、少しでも参考になれば幸いです。