殿堂入り記事

よく分かる!iOS アプリのリリース手順のまとめ

2013.10.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2014/04/16 コンプライアンスの「Content Rights」と「Advertising Identifier」についての解説を追加しました。

はじめに

iOS 7 がリリースされ、さまざまな新しい機能が使えるようになりました。iOS 7 SDK を使ったアプリをリリースしたい!と思っているかたも多いのではないでしょうか。しかし iOS アプリのリリース作業は手順が複雑そうで取っ付きづらい印象を持たれているかたが多いと思います。筆者もそうでした。

ということで、最新 (2013年10月21日現在) の iOS アプリのリリース手順についてできる限り分かりやすくまとめてみました。リリース時の参考にしていただければと思います。

概要

まずはじめに全体像を確認しておきましょう。iOS アプリのリリースは下図のようなフローで行います。

  1. リリース用の Provisioning Profile を作成する
  2. iTunes Connect でアプリの詳細情報を登録する
  3. Xcode でアプリをビルドしてアップロードする
  4. レビューを待ち、リジェクトされなければリリース完了

この手順をひとつずつ確認しながら作業していきたいと思います。

リリース用の Provisioning Profile を作成する

まずは Provisioning Portal で リリース用の Provisioning Profile を作りましょう。Provisioning Profile を作成するために必要な Production 用の Certificate と App ID も一緒に作っていきます。

大前提として Safari 推奨です。Chrome だと処理の途中で止まってしまったりいろいろ問題があるので Safari を使うようにしましょう。

Production 用の Certificate の作成

まず初めに Production 用の Certificate を作成します。実機でデバッグしたことがある場合は Development 用の Certificate を作成した経験があると思いますが、手順はほぼ同じです。まず iOS Dev Center の iOS Certificates ページにアクセスし、右上の「+」ボタンをクリックします。

iOS Certificates | Apple Developer

certificate01

どの種類の Certificate を作成するか問われるので「App Store and Ad Hoc」を選択します。

certificate02

あとは Development 用の Certificate と手順は同じです。本記事では割愛します。

iOS App ID の作成

次に App ID を作成します。iOS App IDs ページに移動し、「+」ボタンをクリックします。

appid01

App ID の作成フォームが表示されるのでいろいろ設定していきます。

App ID Description

appid02

App ID の名前を入力します。iTunes Connect でアプリ情報を設定するときなどで表示される名前になります。識別しやすい名前であれば何でも構いません。

App ID Suffix

appid03

App ID のサフィックスを設定します。App ID にはアプリのユニークな ID である Bundle ID が必要です。リリース用であれば Explicit App ID を選択し、任意の Bundle ID を入力します。

App Services

appid04

アプリ内で使用しているサービスを設定します。開発したアプリで使っているサービスにチェックを付けましょう。何故か Game Center は必ず有効になります。何故でしょう…
以上すべて設定が完了したら「Continue」をクリックして作成します。

2013年10月21日現在、App ID を一度作成すると削除できないので注意してください。

Distribution 用の Provisioning Profile を作成する

次に Provisioning Profile を作成します。iOS Provisioning Profiles ページに移動し「+」ボタンをクリックします。

provitioning01

どの種類の Provisioning Profile を作成するか問われるので「App Store」を選択します。

provitioning02

どの App ID を使うか問われるので、先ほど作った App ID を選択します。

provitioning03

どの Certificate を使うか問われるので、先ほど登録した Certificate を選択します。

provitioning04

最後に Provitioning Profile の名前を入力し「Generate」ボタンをクリックします。

provitioning05

以上で完了です。

provitioning06

次に iTunes Connect の作業に移ります。

iTunes Connect でアプリの詳細情報を登録する

こちらも大前提として Safari 推奨です。Chrome だと処理の途中で止まってしまったりいろいろ問題があるので Safari を使うようにしましょう。

iTunes Connect にサインインし「Manage Your Apps」をクリックします。

itunes01

「Add New App」をクリックします。

itunes02

言語、アプリ名、App ID などを設定する画面が表示されると思います。次項から設定項目を1つずつ確認しながら設定していきます。

言語、アプリ名、App ID の設定

itunes03

ここでは、以下の内容を設定していきます。

Default Language

デフォルトの言語です。特別にローカライズされていない場合に使われる言語になります。 日本限定でリリースするアプリであれば Japanese で良いと思いますが、国外リリースするのであれば English にしておくのが良いと思います。

App Name

App Store に表示されるアプリ名です。以下の記事にあるように、検索に引っかかりやすいキーワードを散りばめたりすると SEO 的に良いとされています。

AppStore SEOでダウンロードを増やす方法(初級者編)【2012/9/1改訂 含Chomp対策】 | Slide Share

SEO 的に良いとされています…が、公式ガイドラインを読むと「アプリケーション名にはアプリケーションの説明を含めてはいけません。説明用には「Application Description」フィールドを使用してください。」とあるのでやりすぎるとリジェクト対象になる可能性があります。よく考えて決めてください。

SKU Number

アプリのユニークな番号です。Bundle ID と同一で良いと思います。

Bundle ID

アプリのユニークな ID です。通常、パッケージ名と同様の形式にします。 先ほど作成した App ID から選択してください。もし作成していない場合は以下のリンクから作成することができます。

https://developer.apple.com/account/ios/identifiers/bundle/bundleCreate.action

ここまで入力できたら「Continue」をクリックして次の画面にいきます。次の画面ではリリース日や販売価格を決めます。

リリース日、販売価格の設定

itunes04

Availability Date

アプリが利用可能となる日を決めます。デフォルトで今日の日付になっているので、レビュー後すぐにリリースしたい場合はそのままで良いと思います。

Price Tier

無料アプリ or 有料アプリのどちらかを決めます。有料アプリの場合は価格層から自由に決めます。どの価格層がいくらになるかは「View Pricing Matrix」で確認できます。

Discount for Educational Insitutions

有料アプリの場合、教育用に割引するか決めるチェックボックスです。有効の場合は割引されます。

ここまで入力できたら「Continue」をクリックして次の画面にいきます。次の画面ではいよいよ本題、アプリの紹介ページに掲載する情報を入力します。

紹介ページの情報の設定

デフォルトの言語で表示するアプリページの情報を設定します。量は多いですが、順番に確認しながら入力していきましょう。

Version Information

itunes05

Version Number

表示するバージョン番号です。

Copyright

アプリ開発者のコピーライトです。個人名または企業名などを設定します。

Category

itunes06

アプリのカテゴリです。アプリの内容に一番近いカテゴリを2つ設定します。2つめのカテゴリは必須ではありませんが、検索時のヒット率 (=ダウンロード率) に関わってくるので必ず設定しましょう。

Rating

itunes07

アプリのレーティングです。アプリのコンテンツが Apple Content Descriptions の各項目に該当するか否かでチェックボックスを埋めていきます。設定された内容でレーティングが自動で決められます。

Made for Kids (Optional)

itunes08

子ども向けのアプリとして設計されているかどうかです。このチェックボックスを有効にすると App Store で子供向けアプリのカテゴリに登録されます。知育アプリなどは有効にしましょう。

Metadata

itunes09

Description

アプリの説明・紹介文です。アプリの機能を簡潔に分かりやすく説明しましょう。4000文字まで入力できます。

Keywords

キーワードをカンマ区切りで設定します。ユーザーが App Store で検索したとき、キーワードとマッチしていれば表示されるようになります。ダウンロード数にかなり影響してくるので、ユーザーがどのように検索するか考えながら一つ一つ決めていく必要があります。100文字まで入力できるので優先順位の高いキーワードから入れていきましょう。

Support URL

アプリの詳細ページに表示される、サポート用 URL です。必須項目なので何かしらのサポートページを用意しておく必要があります。

Marketing URL (Optional)

アプリの詳細ページに表示される、アプリの紹介ページの URL です。アプリを宣伝するような Web ページがある場合設定しましょう。アプリに対する理解度や魅力が増します。

Privacy Policy URL (Optional)

プライバシーポリシーの Web ページの URL です。アプリで個人情報や端末情報を収集する場合、ユーザーに安心してアプリを使ってもらえるよう、Web ページを用意しておいたほうが良いです。

Contact Information

itunes10-2

App Review Contact Information

レビュー中のやりとりに使用する連絡先情報です。レビュー中に問題や質問があると登録した連絡先に連絡が入ります。

Review Notes (Optional)

レビュー時の注意点などを書くスペースです。アプリのテスト時の注意点などを書いておきます。4000文字まで入力可能です。

Demo Account Information (Optional)

デモ用アカウントのユーザー名・パスワードです。アプリにアカウント登録が必要な場合は必ず入力します。

App Store Contact Information

App Storeに表示する連絡先情報です。韓国のApp Storeに表示するために必要な情報になります。最後の「Display Trade Rep contact info on the Korean App Store.」にチェックを入れると韓国のApp Storeで連絡先情報が表示されるようになります。

EULA

itunes11

EULA に関する設定です。通常はこちらの EULA が適用されますが、アプリ特有の EULA を設定したい場合は「click here」をクリックし、EULA を入力します。

Uploads

itunes12

Large App Icon

1024 x 1024 px サイズのアプリアイコンです。

3.5-Inch Retina Display Screenshots

3.5 インチの Retina ディスプレイ用のスクリーンショットです。iPhone / iPod touch 用アプリの場合、1枚〜5枚登録します。

4-Inch Retina Display Screenshots

4 インチの Retina ディスプレイ用のスクリーンショットです。iPhone / iPod touch 用アプリの場合、1枚〜5枚登録します。

iPad Screenshots

iPad 用のスクリーンショットです。iPad 用アプリの場合、1枚〜5枚登録します。

Routing App Coverage File (Optional)

ナビアプリのような位置情報を使用するアプリで、アプリがカバーするエリアを .geojson 形式で登録します。ナビアプリでない場合は未登録でOKです。

ここまで入力できたら「Save」をクリックします。これでアプリ情報の一連の登録作業完了です。

アップロード準備状態にする

アプリ情報の設定が終わったら、次にアプリをアップロード待ち (Ready to Upload) の状態にします。 アプリの詳細画面に「Ready to Upload Binary」というボタンがあるのでクリックします。

itunes13

ここで表示されるのがコンプライアンス(許諾)ページです。ここでは、アプリの公開に関するいくつかの確認事項が問われるので、アプリの機能や実装方法に合わせて回答する必要があります。

itunes14-2

Export Compliance

ここではアプリ内で SSL 通信を行っている場合、EAR (米国輸出規則) に準拠しているか問われます。iOS の暗号を使っている場合はここは Yes と答えないといけません。EAR については以下のサイトで詳細に解説されているので、アプリ内で SSL 通信を使っている場合は参考にしながら問いに回答していってください。

HTTPS を使ってるアプリを AppStore や Android Market で配信するときの輸出手続きについて | むらかみの雑記帳

Export Compliance | code up

Content Rights

アプリ内で使用しているコンテンツ(画像や音声など)に関する確認事項です。アプリ内でサードパーティ製のコンテンツを使用している場合、コンテンツの使用に関する権利を持っている必要があり、アプリを使用できる地域(国)の法律の下で許可されている必要があります。コンテンツを使用しており、かつ使用に関して問題がない場合は「Does your app contain, display, or access third-party content?」に Yes と回答し、「Do you have all necessary rights to that content or are you otherwise permitted to use it under the laws of each App Store territory in which your app is available?」に Yes と答えましょう。

Advertising Identifier

広告の識別子 (Advertising Identifier) に関する確認事項です。広告の識別子はユーザーの興味・関心に合った広告(追跡型広告)を表示するための機能で、この広告の識別子は追跡型広告の表示以外の機能で使ってはいけません。アプリ内で広告の識別子を使っている場合は「Yes」と答え、「This app uses the Advertising Identifier to (select all that apply):」でアプリ内で広告の識別子を使う目的にチェックし、「Limit Ad Tracking setting in iOS」でアプリでは追跡型広告の表示以外の機能で使うことができないという条件に同意(チェック)します。自分のアプリで使用している広告サービスで広告の識別子を使っているか確認し、回答するようにしましょう。

Appleのデベロッパに広告識別子の規則遵守が義務化, 違反者はApp Storeから拒絶される | TECHCRUNCH JAPAN

アプリアップロードの新しい項目 | iOS開発豆知識

iOSアプリ申請時のIDFAの質問はこう答えるべし | アプリで飯を食う

すべての回答が終わったら「Save」をクリックすると以下の画面が表示されます。この画面には「アップロード準備が整ったからアップロードしてね」的なことが書いてあります。「Continue」をクリックしてアップロード準備完了です。

itunes15

下図のように「Waiting for Upload」と表示されればOKです。

itunes16

次はアプリのリリースビルドです。

Xcode でアプリをビルドしてアップロードする

それではいよいよアプリのリリースビルドです。まずは Target の Identity を確認しましょう。

xcode01

まず Bundle identifier を App ID の Bundle ID と揃えます。最後のサフィックスはプロジェクト名がそのまま入るので入力しません。
また Version はユーザーに見えるバージョン番号、Build はアプリがインストールされた OS 内でアップデートを確認するためのバージョン番号になります。正しい値になっているか確認しておきましょう。
最後に Team ですが、これはアプリのリリースビルドに関連付ける iOS Developer Program のチーム名を選択します。選択すると、対象の iOS Developer Program に先ほど指定した Bundle ID の App ID が登録されているか自動で検索し、設定されます。

うまくマッチしないと「fix issues」ボタンが表示されるので、クリックすると不足している App ID や Provisioning Profile などが自動で作成されます。勝手に作られるのがイヤな場合は App ID や Certificate、Provisioning Profile などに不備がないか確認するようにしましょう。

次に Build SettingsCode Signings を確認します。
Code Signings Identity の Release を事前に登録しておいた Distribution 用の Certificate に変更します。

xcode02

また Provitioning Profile を、こちらも事前に登録しておいた Distribution 用の Provisioning Profile に変更します。

xcode03

これで Build Settings の設定は終わりです。次にアプリを Archive します。まずはメニューから「Product」>「Scheme」>「Edit Scheme」を選択します。

xcode04

Scheme の設定画面が表示されるので「Archive」画面の「Build Configration」を「Release」に変更し「Archive Name」にアプリ名を入力します。

xcode05

次にメニューから「Product」>「Archive」を選択し Archive を実行します。

xcode06

ビルドが完了すると Organizer が自動で開き Archive したアプリが表示されると思います。

xcode07

あと少しです!次に「Validate」ボタンをクリックしてアプリを検証します。すると iTunes Connect アカウントの ID とパスワードが求められるので入力します。

xcode08

検証する Provisioning Profile を選択し「Validate」ボタンをクリックします。

xcode12

Validate に成功したら、最後に「Distribute」ボタンをクリックして、アプリのファイルをアップロードします。どの形式で Distribute するか問われるので「Submit to the iOS App Store」を選択します。

xcode11

Distribute に使用する Provisioning Profile を選択し「Submit」ボタンをクリックします。

xcode09

下図の画面が表示されたら、無事にアップロード完了です!

xcode13

iTunes Connect を見てみると「Waiting for Review」に変わっていると思います。お疲れ様でした!あとはレビューを待ちましょう。

xcode14

レビューを待ち、リジェクトされなければリリース完了

Apple にアプリのリリース申請が無事に終わったので、あとはレビュー結果を待つだけになります。リジェクトされなければ無事リリースできます。リジェクトされないことを祈りましょう。w 以下にレビューに関する便利なサイトを集めました。参考にしてください。

レビュー日数を確認する

News and Announcements for Apple Developers | Apple Developer

https://developer.apple.com/news/

Apple 公式のレビュー待ち状況です。右上の App Review Status で5営業日以内にレビューされる確率が分かるので、参考にしながら待ちましょう。レビューが完了する割合ではないので注意してください。2013年10月21日時点で約90%のようです。

Average App Store Review Times

http://reviewtimes.shinydevelopment.com/

自己申告されたレビューまでの日数をもとに、レビューまでの現在の平均日数を算出してくれるサービスがあります。以下 URL にアクセスするとすぐに確認することができます。2013年10月21日時点で約7日のようです。

リジェクトされる原因を知る

App Review Guidelines | Apple Developer

https://developer.apple.com/jp/appstore/guidelines.html

Apple 公式のレビューガイドラインです。どのような基準でアプリを審査しているか理解することができます。またリジェクト原因に誤解がある場合、不服の申し立てもできます。

iPhoneアプリ審査での111の禁止項目(意訳) | fraddict

http://fladdict.net/blog/2010/09/reject-list.html

fraddict さんによるレビューの審査基準の条項の意訳です。無駄な改修が発生しないよう、アプリ開発前に読んでおいたほうが良いと思います。

Developer:リジェクトされないために App Storeレビューガイドラインの和訳 2013年最新版 | www.sirochro.com

http://www.sirochro.com/note/app-store-review-guidelines/

App Storeレビューガイドラインの和訳です。こちらもアプリ開発前に読んでおいたほうが良いと思います。

まとめ

これできっとアプリリリースは怖くないでしょう!きっと!w
登録内容が変更されたときなど、随時更新していきたいと思います。 手順の中で間違っている箇所やアドバイスなどあればコメントいただけると幸いです。

参考