iOSアプリリリースのポイント
※本記事はNCデザイン&コンサルティング㈱のブログに私が記載したものを転載・修正したものです。
今回はiOSアプリのリリースについて書いてみたいと思います。 iOSアプリのリリースやiOS Developer Programへの登録、証明書の発行、プロビジョニングファイルの準備や審査への対応など、WebシステムやAndroidアプリのリリースに比べて、その作業内容は複雑難解な印象があります。 初めてリリース作業をする人にはとてもハードルの高い作業の様に思えますので、その内容やポイントをまとめることで、これからリリース作業をされる方の役に立つ情報になればと思い記事を書きました。 まずは、アプリが一通り完成してから、リリースするまでの大まかな流れをまとめてみます。
アプリ配信までの流れ
-
iOS Developer Program登録
iOSアプリを本番で利用するには基本的にはiOS Developer Programに登録する必要です。法人で契約する場合はD-U-N-S Numberが必要になり企業審査があります。D-U-N-S Numberの発行と企業審査には2週間程度の時間がかかるので注意が必要です。以降の手続きで登録後に利用できるMemberCenterを利用する必要があります。Xcode7以前はアプリ開発開始前に登録を済ませている場合もあります。
-
iOS Distribution用の証明書を発行
アプリを配布するための証明書を発行します。1つの証明書で複数のアプリを発行できるので、通常は1つあればOKです。MemberCenterのCertificatesにて発行手続きを実施します。
-
App IDの登録
リリースするアプリを登録します。Xcodeでアプリに指定したBundle Identifierを指定します。MemberCenterのIdentifiersにて登録手続きを実施します。
-
オプションサービスの指定と証明書発行
アプリで利用している機能に応じてオプションサービス(Push通知やiCloudの利用など)とそれを利用するための証明書発行を行なう必要があります。証明書の発行をMemberCenterのCertiricatesで行い、Identifiersにて登録したAppleIDに対して利用するサービスを有効化する設定を行ないます。
-
Provisioning Profileの作成
アプリのプロビジョニング用のプロファイルを作成します。プロビジョニングファイルは同じアプリでも配布形態毎(AppStore / AdHocなど)に作成する必要があります。プロビジョニングファイル作成では、前述のDistribution証明書とApp IDの登録が必要になります。 AdHoc配信の場合は、別途Device登録も必要になります。MemberCenterのProvisioning Profilesにて作成手続きを実施します。
-
AppStoreへリリース
審査をパスした後、Apple Storeに公開する情報の最終チェックを行い、Storeに公開します。一度公開すると公開情報は修正できず、修正するには新しいバージョンの提出(再審査)が必要になるので注意が必要です。
リリースまでの流れは以上になります。 次のページではアプリの配布形態についてまとめて見たいと思います。
次に、アプリの配布形態についてまとめてみます。 配布の話を始める前に、前提知識としてDeveloper Programのメンバーシップ形態について説明しておかなければなりません。
Developer Programのメンバーシップ形態
iOSアプリを開発・配布するためには、Appleが提供するDeveloper Programを契約(購入)しなければなりません。 Developer Programの契約形態には次の4つがあります。
-
iOS Developer Program(個人)
個人、または個人事業主の場合のメンバーシップ形態です。 年間登録料:$99
-
iOS Developer Program(法人)
法人としてプログラムを利用する場合のメンバーシップ形態です。D-U-N-Sナンバーによる法人登録と、審査が必要です。アプリの販売に法人名が利用可能です。 年間登録料:$99
-
iOS Developer Enterprise Program
法人として従業員にのみ配布するアプリを作成する場合のメンバーシップ形態です。D-U-N-Sナンバーによる法人登録と、審査が必要です。AppStoreに公開せず従業員にアプリを配布することが可能です。 年間登録料:$299
-
iOS Developer University Program
iOS用の開発をカリキュラムに取り入れることを検討中の高等教育機関のお客様を対象とした、無料のメンバーシップ形態です。教職員や学生はだれでもApple製デバイス用のアプリの開発とそれに必要なリソースの利用が可能です。 年間登録料:無料
アプリの配布形態
目的に合わせて幾つかの配布形態が用意されています。
-
Development(開発用配布)
開発中に実機に配布する形態です。Xcode端末と有線で接続してインストールする必要があります。
-
AppStore(一般公開)
Apple Storeにアプリを公開し、iOSユーザー全てに一般公開する配布形態です。特定ユーザー、組織への配布という設定は不可能です。
-
VPP(Volume Purchase Program)
第三者が特定の組織に限定したアプリ(カスタムB2Bアプリ)を配布する場合の配布形態です。詳細は後述。
VPP(Volume Purchase Program)
システム開発者が特定の企業向けに開発したアプリを配布するにはVPPを利用する必要があります。 一般的にSIerがDeveloper Programに登録していない特定の顧客企業からアプリ開発を受託して開発した場合に、その企業だけにアプリを配布する場合に利用します。
VPPには以下の様な特徴があります。
- Appleが用意した専用ストア(VPPストア)でアプリを配布可能
- VPPストアはVPP契約者毎にプライベートなApp Storeが用意され、契約者が発行したアカウントを持った人だけがアクセスできるようになる
- 企業に導入されたMDMソリューションとの連携も可能
- アプリ提供者はiOS Developer Programへの登録が必要
- アプリ利用者はVPPへの登録が必要
- 登録は無料だが、D-U-N-Sナンバーによる法人登録が必要
配布形態のユースケース
先に述べたように、契約しているメンバーシップ形態に応じて、利用できる配布形態が異なります。 その相関関係をまとめたものが下記の図になります。 この相関関係を踏まえた上で、ユースケースに応じた配布形態を整理してみます。
-
自社で社内アプリを作成・配布する
-
SIerが特定の顧客企業内で利用されるアプリを作成・配布する
- 顧客がiDPに登録していない場合は、VPPを利用
- 顧客がiDPに登録済みの場合は、iDPに開発メンバー登録させてもらいAdHocかIn-House形態で配布
-
SIerが特定の顧客企業が一般公開するアプリを作成・配布する
ipaファイルのOTA配布
iOSアプリをアーカイブして作成したipaファイルを配布するには、AppStoreを利用せずに配布する方法は、AdHocやIn-Houseが利用されます。 ただし、通常、作成したipaファイルは、端末をPCに接続しiTunesやiPhone構成ユーティリティを使ってインストールする事になります。 この方法だと、遠隔地にある複数の端末にipaファイルをインストールするにはとてもコストがかかります。 この問題を解決する方法として、OTA(Over The Air)という仕組が有ります。
OTA配布の仕組
OTA配布では、インストール用のplistファイルを作成し、ipaファイルと一緒にWeb上に公開する事で、端末からはそのURLにアクセスするだけでアプリをインストールする事ができるようになります。 具体的には、以下の様な専用のURLスキームを利用してiOSからURLリンクを叩く事になります。 urlの例 : itms-services://?action=download-manifest&url=<plistのURL> メールなどで上記URLを連絡し、端末ユーザーにリンクを実行してもらうことでインストールを促します。 多くのMDM製品は、このOTA配布を利用して、AdHocやIn-House形式で作成したipaファイルを配信し、リモートからインストールするようにしています。
以上がアプリの配布形態についてになります。 最後のページでは、Apple審査のポイントについてまとめたいと思います。
最後にAppleの審査のポイントについてまとめたいと思います。
Apple審査のポイント
Apple審査のステータス(概略)
審査中の代表的なアプリのステータスは以下のように変化します。 Waiting For Review → In Review → Rejected or Pending Developer Release
Apple審査に必要な期間
審査にはおおよそ1週間〜2週間程度の時間がかかります。 内訳として、Waiting For ReviewステータスからIn Reviewステータスになるまで約1週間程度です。 In ReviewステータスからRejectedステータスまたはPending Developer Releaseステータスになるまで約1日です。 もしリジェクトされた場合、問題解決センターでコメントが返ってくるまでの期間が3日〜1週間程度になります。
Rejectされた時の対処法
問題解決センターでレビューアとテキストのやりとりが可能です。 Rejectedの場合は、ここに指摘が書かれるので、それに対しての説明やフォローをテキストで返します。 指摘された内容に応じて、アプリ情報やアプリモジュールを修正します。
Rejectの原因
Appleよりレビューのガイドラインが出ているのでそちらを参照してください。 App Store Review Guidelines : https://developer.apple.com/app-store/review/guidelines/ まずはガイドラインを確認する事が重要になります。 また、最も多い原因として"More information needed"が上げられており、iTunesConnectのアプリ情報を丁寧に記述することがポイントとなります。 「App Reviewに関する情報 > メモ」という入力項目があるので、ここに懇切丁寧な情報を書き込んでおくほうが良いです。
Apple審査に必要な期間の見積もり
平均待ち時間を確認するサービスがありますので、これを利用すると審査期間の見積もりがしやすくなります。 Average App Store Review Times : http://appreviewtimes.com/ また、1度はRejectされることを前提に見積もった方が良いでしょう。 混み合っている場合は"More information needed"を理由に意図的に1度Rejectされることもありました。(私の体験談で、修正せずに再提出したら通ったアプリが幾つかあります)
TestFlightによる審査モジュールの検証を行なう
TestFlightは実際に審査に提出しているモジュールを配布し動作させる事ができるというメリットがあります。 シミュレータや、テスト用のAdHoc配布モジュールでは正しく動作していても、審査に提出する際のアーカイブに失敗している可能性があります。 Rejectされた場合は実際に審査に出しているモジュールをTestFlightで配布し検証する事をおすすめします。 また、審査は通過してもビルドオプションを間違っており、配布モジュールが意図した動作をしていない可能性があるため、iTunesConnectアップロード後に必ずTestFlightで配信したモジュールを検証しましょう。 (私は間違った設定で審査に提出してしまい、審査が通過したあとアプリを起動してその間違いに気付いたことが有ります。その間2週間の時間が立っていました…)
特急申請(Expedited Review Request)
どうしても急ぎでアプリをリリースしたい場合に、待ち行列を無視してレビューをしてもらえる方法があり、それを特急申請と呼びます。 ただし、利用回数には制限があり、あまり高い頻度で利用しているとアカウントをロックされてしまう可能性がありますので注意してください。
利用方法
- iTunesConnectのContact Usから特急申請を選択
- 特急申請を利用する理由を記入して申請を送る
- Appleより承諾のメールが届くと審査がスタートする
申請理由
理由が適切でない場合は却下されることもあります。 以下の様な理由の場合に利用してください。
- 緊急バグフィックの場合
- 時期が差し迫っているイベントに関係しているアプリの場合
審査期間
およそ1〜2日で審査が完了します。 Reject後の再レビューも優先的に審査してもらえます。 以上が、iOSアプリのリリースについてのまとめとなります。 この記事を読んでいただいた方のiOSアプリリリース作業の助けになれば幸いです。