エンタープライズ(企業)配布用iOSアプリを作成する為の手順

8/12/2013 Leo Rivas(リオ・リーバス) 2 Comments

iOSアプリ「FusionCalc」をKDDIさんに社内導入してもらうにあたり、企業向けにアプリを作成するという経験をさせて頂いたので、その時の手順をメモとして残しておきます。
>>【KDDI】、iOS電卓アプリ「FusionCalc」を社内導入へ!!

個人の開発者の方でも大企業からアプリ制作をお願いされる事は夢ではないので、手順を覚えておくといつか役立つ日がくるかもしれません!

【はじめに】
iOSアプリの配布は必ずしもApp Storeを通さなければいけないわけではなりません。一般ユーザーに向けて配信する為には基本的にApp Storeを通す必要がありますが、それ以外にもAdHoc(アドホック)、B2B(ビジネス・トゥ・ビジネス)、Enterprise Program(企業向け)など、いくつかの配布方法があります。

それぞれの配布方法の詳細や条件はこちらを参考にしてみてください:
>> あの電卓アプリが社内導入!? iOSアプリをApp Storeを通さず配布する方法とは!? 


【Enterprise Programとは?】
まず、Enterprise Programがどういうものかを簡単に説明させて頂きます。これはApp Storeを通さず、企業が社内向けにアプリを配信する為に加入しなければいけないプログラムです。例えばApp Storeでは一般公開したくない、社内だけで使う目的としたアプリであったり、セキュリティーを厳しく管理していて社内使用のデバイスにApp Store経由のアプリを入れられないようにしている企業などは、このEnterprise Programに加入する事で、直接アプリの配信を社内だけで行う事が可能になります。
(* Enterprise Programはアプリを開発する側は加入する必要はありませんが、配信する側は必ず必要になります。インストール台数は無制限です。)


【企業向け配布の問題点】
アプリを企業向けに配布するにあたり、一つの大きな壁があります。それは相手側の「証明書(.p12)」が必要になるという問題です。アプリは最終的に「.ipa」ファイルとして書き出して渡す必要があるわけですが、書き出す時にどうしても企業側の「証明書」が必要になってしまいます。これはセキュリティーに厳しい大企業の場合、メールなどを通して簡単に受け取れるものではありません。

その為、お互いが同席した状態で、証明書が既に登録されている相手側のMacを使い、書き出しの作業を行う必要性が出てくる事があります。これはアップデートを含めて毎回行わなければいけないプロセスなので、海外からの依頼だったりするとなかなかハードルが高くなってしまうでしょう...。
今のところ、この問題を解消するには、信用を築いて.p12ファイルを預かる、Xcodeのプロジェクトをそのまま納品し相手側に書き出しをして貰う、もしくは、Terminalや非公式アプリを使って、証明書を後から上書きして書き換えて貰うという手段があります。
これだけアプリビジネスが世界規模で発展しているにも関わらず、未だにこの辺のやり取りがもっとスムーズになる手段がAppleから提供されていないというのが不思議ですが、近い将来、何らかの手段を提供してもらえる事に期待したいところです。


【事前に準備できること】
直接お互いが会って書き出しを行う前に、事前に準備しておける事がいくつかあります。これをしておくと、当日、色々とスムーズに進める事ができますが、仮に事前に準備を済ませておけない場合でも、オンライン環境さえ整っていれば、全てのステップを一緒に行うのでも問題はありません。(ただし、運悪くアップルのDeveloper Centerが停止中だと、最初のステップでつまずいてしまい、先に進めなくなるので注意が必要です!身をもって体験した事なので事前にステップ1だけでも済ませておく事を強くおすすめします)

(1)Provisioning Profileの用意
一つ目は「Provisioning Profile(プロビジョニング・プロファイル)を相手(企業側)に作成しておいてもらう事です。こちらは作成後、メールなどで事前に送ってもらえれば、プロジェクトに組み込んでおけるので、ある程度の準備が整います。作成時のBundle Identifierを教えてもらう事も忘れずに!(プロジェクト名に合わせてProductNameを指定して作ってもらうと良いかもしれません)
TARGETS > Summaryの中の「Bundle Identifier」を相手側が作成した通りに書き換えておきましょう!


(2)Code Signing Identityの変更
Code Signing IdentityのDistributionを頂いたプロビジョニング・プロファイルに変更しておきましょう。「PROJECT」と「TARGETS」両方とも間違いなく設定されている事を確認してください。


(3)Xcodeアーカイブの書き出し
ステップ(1)と(2)ができたら、次に「Xcodeアーカイブ」を書き出しておきます。手順としてはまずApp StoreへのArchiveとほぼ同じです。Archiveできるように、「Sheme」を「iOS Device」に変更します。

そして、メニューバーの「Product」>「Archive」を選択。


「Distribute」をクリック

「Export as Xcode Archive」を選択して「Next」をクリック。

名前を付けて保存。この先は相手側のMacを使っての作業になるため、USBメモリなどに事前に保存しておくと良いかもしれません。


【企業側のMacを使って行う作業】

(4)Enterprise用.ipaファイルを書き出す
ステップ(3)で作成した「Xcodeアーカイブ」を企業側のMac上で開きます。すると自動的にOrganizerが開くので、「Distribute…」をクリックしましょう。

今度は「Save for Enterprise or Ad-Hoc Deployment」を選択し、「Next」を押します。


Code Signing Identityを設定内容と一致するものに選択し、「Next」を。

次にファイル名を付け、保存先を選択しましょう。

「Save for Enterprise Distribution」というところにチェックを入れるかどうかは、企業側がどのような形で配布するかによって変わってきます。Webを通して配布する場合はチェックを入れ、アップロード先のURLなどの必要な情報を入力する必要があります。どちらを選んでもディスク上に.ipaファイルと.plistファイルの2つが書き出されます。それらのファイルを自社サーバにアップロードするという作業に関しては企業側が行う作業になるため、納品までの流れとしてはここまでで終わりになります。

企業側が社内の全ての端末に配布する方法は自由です。ただ、Macから直接一台づつインストールしていては相当時間がかかってしまうので、Web上のサーバからそれぞれの端末に配布する方法が多いはずです。独自のシステムを使って自社サーバから配布したり、配布の為に特別なサービスを利用したりと、それぞれの会社によって方法は異なるようです。

以上が企業向けにアプリを納品するまでの手順です。

意外とそこまで複雑ではないですし、App Storeでアプリを配布した経験があればあっさり作成できると思いますが、注意点や落とし穴もそれなりにあったので、自分の為にもメモとして残してみました。参考にして頂けると嬉しいです。

2 件のコメント:

  1. EnterpriseProgramのIn-Houseでのアプリ配布についてぐぐっていたらこのブログに辿りつきました。

    質問させてほしいのですが、
    もし信用を築いて.p12ファイルを預かることになった場合、
    apkファイルを書き出すまでのその後のフローはどうなるでしょうか?

    あともう一点、
    現時点で最新のXcode7.1ではOrganizer画面でExportをするとき、
    Archiveとして保存という項目が無いと思うのですが、
    その場合この記事に載ってる方法は今は使えないということになりますか?

    返信削除
  2. 今月から下記のようなサービスが始まったようです。
    iOS、Androidに対応した業務用アプリ配布環境「APP DOWNLOADER」
    http://www.appdl.jp/

    返信削除