iOSアプリリリースのポイント

※本記事はNCデザイン&コンサルティング㈱のブログに私が記載したものを転載・修正したものです。

今回はiOSアプリのリリースについて書いてみたいと思います。 iOSアプリのリリースやiOS Developer Programへの登録、証明書の発行、プロビジョニングファイルの準備や審査への対応など、WebシステムやAndroidアプリのリリースに比べて、その作業内容は複雑難解な印象があります。 初めてリリース作業をする人にはとてもハードルの高い作業の様に思えますので、その内容やポイントをまとめることで、これからリリース作業をされる方の役に立つ情報になればと思い記事を書きました。 まずは、アプリが一通り完成してから、リリースするまでの大まかな流れをまとめてみます。  

アプリ配信までの流れ

    1. iOS Developer Program登録
      iOSアプリを本番で利用するには基本的にはiOS Developer Programに登録する必要です。法人で契約する場合はD-U-N-S Numberが必要になり企業審査があります。D-U-N-S Numberの発行と企業審査には2週間程度の時間がかかるので注意が必要です。以降の手続きで登録後に利用できるMemberCenterを利用する必要があります。Xcode7以前はアプリ開発開始前に登録を済ませている場合もあります。

 

    1. iOS Distribution用の証明書を発行
      アプリを配布するための証明書を発行します。1つの証明書で複数のアプリを発行できるので、通常は1つあればOKです。MemberCenterのCertificatesにて発行手続きを実施します。

 

    1. App IDの登録
      リリースするアプリを登録します。Xcodeでアプリに指定したBundle Identifierを指定します。MemberCenterのIdentifiersにて登録手続きを実施します。

 

    1. オプションサービスの指定と証明書発行
      アプリで利用している機能に応じてオプションサービス(Push通知やiCloudの利用など)とそれを利用するための証明書発行を行なう必要があります。証明書の発行をMemberCenterのCertiricatesで行い、Identifiersにて登録したAppleIDに対して利用するサービスを有効化する設定を行ないます。

 

    1. Provisioning Profileの作成
      アプリのプロビジョニング用のプロファイルを作成します。プロビジョニングファイルは同じアプリでも配布形態毎(AppStore / AdHocなど)に作成する必要があります。プロビジョニングファイル作成では、前述のDistribution証明書とApp IDの登録が必要になります。 AdHoc配信の場合は、別途Device登録も必要になります。MemberCenterのProvisioning Profilesにて作成手続きを実施します。

 

    1. Build & Archive
      XcodeやCIサーバーを利用してモジュールをビルドし、ipaファイルにアーカイブします。App Storeにてモジュールを配布しない場合は、この時点で作成したipaファイルをエクスポートして端末に配布する事が可能です。エクスポートする際は、アーカイブ時に配布形態に合わせてDistribution証明書とProvisioning Profileの指定が必要になります。

 

    1. iTunesConnectへのアカウント登録
      iOS Developer Programへの登録が完了すると、登録に使用した管理者のAppleIDで iTunes Connectにサインインできるようになります。他のIDで作業したい場合は、そのIDへの招待が必要になります。ただし、同一IDで複数の企業のiTunes Connectへの登録は不可能です。(iOS Developer Programは同一IDで複数企業への登録が可能)

 

    1. iTunesConnectにアプリを登録
      アプリの情報をiTunesConnectに登録し、作成したipaファイルをiTunesConnectにアップロードします。アップロード時には配布形態に合わせてDistribution証明書とProvisioning Profileの指定が必要です。アップロードはXcodeにて実施します。

 

    1. Apple審査
      iTunesConnectに登録したアプリ情報に、審査に必要な情報を追記し、Appleの審査に提出します。審査は実際に人手で行われるため、審査員が操作するためのアカウント情報(IDやパスワードなど)を記述しておきます。審査をパスするとメールにて通知がきます。審査のステータスはiTunesConnectにて確認可能です。

 

  1. 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端末と有線で接続してインストールする必要があります。

 

    • AdHoc(評価用配布)
      開発中のアプリを複数の実機端末に評価用に配布するための形態です。AppStoreを介さずに、最大100台の実機端末に配布可能です。アーカイブしたipaファイルを各端末に配布します。配布対象端末のUDIDをMemberCenterにて管理する必要があります。

 

    • In-House(組織内配布)
      組織内だけで利用するアプリを対象の組織のみに配布するための形態です。契約している組織内だけに限り、AppStoreを介さずに、台数無制限で配布可能です。アーカイブしたipaファイルを各端末に配布します。AdHocとは異なりMemberCenterでのUDIDの管理は不要です。ただし、契約主体法人以外にアプリ配布があった場合はiOS Developer Programのライセンスを取り消され、法的な罰則が課せられます。

 

    • 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ナンバーによる法人登録が必要

VPPによるアプリ配信の仕組 iOS_AppRelease_VPP  

配布形態のユースケース

先に述べたように、契約しているメンバーシップ形態に応じて、利用できる配布形態が異なります。 その相関関係をまとめたものが下記の図になります。 iOS配布形態ユースケース@2x   この相関関係を踏まえた上で、ユースケースに応じた配布形態を整理してみます。

  • 自社で社内アプリを作成・配布する
    • 配布対象デバイスが100台以内の場合、AdHocで配布
    • 配布対象デバイスが100台以上の場合、In-Houseで配布
  • SIerが特定の顧客企業内で利用されるアプリを作成・配布する
    • 顧客がiDPに登録していない場合は、VPPを利用
    • 顧客がiDPに登録済みの場合は、iDPに開発メンバー登録させてもらいAdHocかIn-House形態で配布
  • SIerが特定の顧客企業が一般公開するアプリを作成・配布する
    • 顧客名義でアプリを配布する場合は、顧客にiDPに登録してもらい、App Storeで配布
    • SIer名義でアプリを配布しても良い場合は、SIerでiDP登録し、App Storeで配布

 

ipaファイルのOTA配布

iOSアプリをアーカイブして作成したipaファイルを配布するには、AppStoreを利用せずに配布する方法は、AdHocやIn-Houseが利用されます。 ただし、通常、作成したipaファイルは、端末をPCに接続しiTunesiPhone構成ユーティリティを使ってインストールする事になります。 この方法だと、遠隔地にある複数の端末に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)

どうしても急ぎでアプリをリリースしたい場合に、待ち行列を無視してレビューをしてもらえる方法があり、それを特急申請と呼びます。 ただし、利用回数には制限があり、あまり高い頻度で利用しているとアカウントをロックされてしまう可能性がありますので注意してください。

利用方法
  1. iTunesConnectのContact Usから特急申請を選択
  2. 特急申請を利用する理由を記入して申請を送る
  3. Appleより承諾のメールが届くと審査がスタートする

 

申請理由

理由が適切でない場合は却下されることもあります。 以下の様な理由の場合に利用してください。

  • 緊急バグフィックの場合
  • 時期が差し迫っているイベントに関係しているアプリの場合

 

審査期間

およそ1〜2日で審査が完了します。 Reject後の再レビューも優先的に審査してもらえます。   以上が、iOSアプリのリリースについてのまとめとなります。 この記事を読んでいただいた方のiOSアプリリリース作業の助けになれば幸いです。