iOSアプリの配布について調べていたら、やたら道のりが長かった。
断片的な情報はネットで沢山あるのだけど、全体像がわかりにくい。
ある程度理解できた気がするので、調べた内容を公開。
- メンバーシップの種類
- 配布の種類
- 証明書(Certificate)やプロビジョニングプロファイル(Provisioning Profile)に関する全体像
- Apple Developerサイト(developer.apple.com)
- 配布の手段
- 手動でインストールする場合の注意点
- D-U-N-S Numberに関する補足
- 証明書(Certificate)に関する補足
- MDMに関する補足
- 参考資料
- 困ったときのおまじない
メンバーシップの種類
アプリを配布するためには、いずれかの登録が必要。
メンバーシップ毎に選択できるアプリ配布方法に違いがある。
個人 | 法人 | 教育機関 | |
---|---|---|---|
ADP(Apple Developer Program) | ○ | ○ | |
ADEP(Apple Developer Enterprise Program) | ○ | ||
iOS Developer University Program | ○ |
個人: 個人事業主、個人経営者含む
法人: Appleとの契約の締結が可能な法人
教育機関: 認可済みの学位を授与できる高等教育機関
メンバーシップ毎に選択できるアプリ配布方法
Development | AppStore | VPPストア | AdHoc | In-House | |
---|---|---|---|---|---|
ADP(Apple Developer Program) | ○ | ○ | ○ | ○ | |
ADEP(Apple Developer Enterprise Program) | ○ | ○ | ○ | ||
iOS Developer University Program | ○ | ○ |
Apple Developer Program
別名:iOS Developer Standard Program
旧名称:iOS Developer Program
略称:ADP
公式ページ
登録に必要な情報
ライセンス契約情報へのリンク元
価格情報
Apple Developer Programの年間登録料は99米ドルです(または現地通貨の同等額)。価格は地域によって異なることがあり、登録手続きの際は現地通貨で表示されます。
日本円での価格は為替レートによって改定される。
法人が登録する場合は D-U-N-S Number が必要。
Apple Developer Enterprise Program
旧名称:iOS Developer Enterprise Program
略称:DEP、ADEP、iDEP(アイデップ)
公式ページ
登録に必要な情報
ライセンス契約情報へのリンク元
価格情報
Apple Developer Enterprise Programの年間登録料は299米ドルです(または現地通貨の同等額)。価格は地域によって異なることがあり、登録手続きの際は現地通貨で表示されます。
日本円での価格は為替レートによって改定される。
登録には D-U-N-S Number が必要。
iOS Developer University Program
配布の種類
配布には複数の種類がある。
development配布(開発用配布)
- 自分のMacに接続された端末のみインストール可能
App StoreもしくはVPP
App Store配布(一般公開)
- Appleによるアプリ審査が必要
- 一般公開されるため、プライベートなアプリ提供ができない
- AppStore登録後に証明書が無効になっても問題ない
アプリ審査(App Review)
AppStore審査ガイドライン
VPP(Volume Purchase Program)配布
- Appleによるアプリ審査が必要
- カスタムB2Bアプリをプライベートな方法で提供できるので法人アプリ向き
- 配布先企業は Apple Business Manager に登録が必要
- Apple Business Manager を通じて配布
Ad HocもしくはIn-House
Ad Hoc配布(評価用配布)
In-House配布(企業内配布)
TestFlight Beta Testing
よく知らないのでパス
証明書(Certificate)やプロビジョニングプロファイル(Provisioning Profile)に関する全体像
配布可能なアプリを作るためには、配布用証明書とプロビジョニングプロファイルが必要。
iOSアプリのプロビジョニング周りを図にしてみる - Qiita
ここに書かれた図がとてもとてもわかり易い。
既に証明書が作成済みの場合は、後述の「他の人が作成した証明書を利用する場合」の方法で証明書を受け取ればいい。
配布用証明書とプロビジョニングプロファイルにはそれぞれ期限があるので注意が必要
Apple Developer Programの証明書は1年後に期限切れになり、プロビジョニングプロファイルは1年後に期限切れになります。
出典みつからず。
Apple Developer Enterprise Programの証明書は3年後に期限切れになり、プロビジョニングプロファイルは1年後に期限切れになります。
出典:日本語ドキュメント - Apple Developer
Apple Developerサイト(developer.apple.com)
メンバーシップ登録や内容確認を行うサイト。
メンバー招待/権限管理、証明書作成、プロビジョニングプロファイル作成もここで行う。
招待には「Invite as Admins」「Invite as Members」の2種類がある。
配布の手段
複数の手段がある。
AppStoreを使う
審査を通ったアプリのみ。
VPPストアを使う
審査を通ったアプリのみ。
代表者がVPPストアで購入し、MDMで配布という方法もある。
MDMを使う
(法人向けアプリの場合)Appleが推奨するインストール方法。詳しくは知らない。
Apple Configurator2を使う
(法人向けアプリの場合)Appleが推奨するインストール方法の一つ?。
複数台のiPhone/iPadをMacに接続して、まとめて設定やアプリインストールができる。
対応OSはMacのみ。Mac App Storeでダウンロードできる
参考: 複数のiPadに一括でアプリをいれるタスクが回ってきた(MDMサーバなし編) - Qiita
OTA(Over The Air)配信を使う
(法人向けアプリの場合)Appleが推奨している記載が見当たらない。アプリの更新が面倒。
Ad Hocビルド、In-Houseビルドしたアプリを配布できる。
HTTPS通信できる環境に必要なファイルを置く必要がある。
参考: 「現在ダウンロードできません。」と表示された場合の対処方法
iTunesを使う
(法人向けアプリの場合)Appleが推奨している記載が見当たらない。アプリの更新が面倒。
iTunesを使ってipaファイルをインストールする方法
App Storeやアプリ管理機能が削除された「iTunes v12.7」でMacに保存された"ipa"や着信音をiOSデバイスへインストールする方法。 | AAPL Ch.
こちらの説明がわかりやすかった。
エンタープライズAppの信頼の確立
iTunesを使ってインストールした場合、エンタープライズAppでは信頼の確立という作業が必要。信頼の確立を行っていない場合、アプリを起動すると次のメッセージが表示される。
信頼されていないエンタープライズ開発元
"アプリ名"はこのiPHoneでは信頼されていません。この開発元が信頼されるまで、そのエンタープライズAppは使用できません。
iOS でカスタムのエンタープライズ App をインストールする - Apple サポート (日本)
信頼を確立するための方法は、公式ページが十分わかりやすい。
手動でインストールする場合の注意点
iOS 10.3以降での証明書に関する注意点
iOS 10.3 以降では、証明書ペイロードを含むプロファイルを手動でインストールした場合、SSL 通信に対してその証明書が自動的には信頼されません。
メールで送信されてきたプロファイルや、Web サイトからダウンロードしたプロファイルをインストールする際は、SSL 通信に対する信頼を手動で有効にする必要があります。
SSL 通信に対して証明書の信頼を有効にするには、「設定」>「一般」>「情報」>「証明書信頼設定」の順に選択します。「ルート証明書を全面的に信頼する」で、証明書に対する信頼を有効にします。
Apple では、Apple Configurator またはモバイルデバイス管理 (MDM) を介して証明書を配布することを推奨しています。Configurator や MDM でインストールされたか、MDM 登録プロファイルの一部としてインストールされた証明書ペイロードは、SSL 通信において自動的に信頼されます。
参照:iOS 10.3 で手動でインストールした証明書プロファイルに関する変更点
エンタープライズアプリのインストールに関する注意
App をモバイルデバイス管理 (MDM) でインストールした場合は、自動的に信頼が確立します。App を手動でインストールする場合は、信頼も手動で確立する必要があります。
Apple では、App の配布には MDM ソリューションを利用することを推奨しています。その方が安全で、ユーザの介入も不在です。所属組織が運用する安全な Web サイトからカスタム App をインストールできるという利点もあります。App を所属組織からインストールするのでなければ、Apple App Store からのみ App をダウンロードし、インストールするようにします。iPhone、iPad、iPod touch を保護するには、これが最善の策です。
参照:iOS でカスタムのエンタープライズ App をインストールする
信頼の確立、再検証にはインターネットの接続が必要
信頼を確立する際は、App の開発元の証明書を検証するため、インターネットへの接続が必要です。ファイアウォールをお使いの場合は、https://ppq.apple.com への接続を許可するように設定しておいてください。App を信頼する際にインターネットに接続されていないと、デバイスには「未検証」と表示されます。この状態の App を使うには、インターネットに接続してから、「App を検証」ボタンをタップしてください。
App の初回の検証が済んだ後、信頼を維持し続けるため、iPhone、iPad、iPod touch で App 開発元の証明書を定期的に再検証する必要があります。再検証できない場合は、状況に応じて、間もなく検証が期限切れになるというメッセージが表示されます。信頼を維持するには、デバイスをインターネットに接続し、「App を検証」ボタンをタップするか、App を起動してください。
参照:iOS でカスタムのエンタープライズ App をインストールする
「https://ppq.apple.com」と書かれているが、他にもOCSP(Online Certificate Status Protocol)を使って「https://ocsp.apple.com」などにもアクセスするらしい。それ以外にも「ax.init.itunes.apple.com」にもアクセス?
D-U-N-S Numberに関する補足
ADP(法人)かADEPの登録に必要な情報の一つ。
The Data Universal Numbering System (D-U-N-S®)
1962年にD&Bが開発した9桁の企業識別コードのことで、世界の企業を一意に識別できる企業コードです。
D&Bが独自に管理をしており、日本企業についてはTSRが運営しています。
出典:東京商工リサーチ
D-U-N-S Numberの申請は東京商工リサーチに依頼するのが楽。
サイトの上の方に「自社D-U-N-S Numberの申請」がある。
料金
「自社D-U-N-S Numberの申請」¥3,000(税抜)
「D-U-N-S Number 証明書発行希望」¥10,000(税抜)
上記2つをセットで申し込む場合は、セットで¥10,000(税抜)
証明書(Certificate)に関する補足
開発用と配布用の2種類がある
証明書(Certificate)には開発用(Development 別名:Apple Development)と配布用(Distribution 別名:Apple Distribution)の2種類がある。
自分のMacに接続された端末以外にアプリをインストールしたい場合は、配布用証明書を使う必要がある。
「iOS Development」「iOS Distribution」という古い形式の証明書もあるが、Xcode11未満用。 (Xcode12でも手動であれば使える。プロビジョニングプロファイルは必要に応じて、Apple Developerサイトで更新が必要。)
開発用/配布用共に証明書の作成にはCSRが必要
CSRとは証明書署名要求(Certificate Signing Request)の略で、証明書を発行するのに必要な情報。
他の人が作成した証明書を利用する場合
証明書を使うには次の情報が必要
参考: .p12ファイルを書き出す方法
パスワードが必要なことは忘れがちなので注意
.p12ファイルとは
キーチェーン上で証明書や秘密鍵をエクスポートすると作成されるファイル。
証明書だけでなく秘密鍵も扱えるので便利だけど、操作を間違わないように注意が必要。
開発者証明書に関する補足
2015年9月17日に正式公開されたXcode7からはApple Developer Program に登録して開発用証明書を作成しなくても、自作アプリをiOS端末にインストールして実機で動かすことができるようになりました。Apple Developer Programへの登録費用が要らなくなり手順も大幅に簡略化されたので、そちらのやり方を推奨します。
【2016年最新版】わかりやすく徹底解説!iOS端末でアプリの実機テストをする為に必要なCertificate(開発用証明書)の作成手順 - 夜更かし工房
証明書の期限切れについて
Macに関する注Developer ID証明書が期限切れになっても、ユーザはなお、この証明書で署名したMacアプリケーションをダウンロード、インストール、実行できます。しかし、更新版に署名し、あるいは新規にアプリケーションを開発するためには、新しいDeveloper ID証明書が必要です。
MDMに関する補足
MDMはどんなことができるか
MobiConnectという製品の例。
http://www.mobi-connect.net/price/ios.html
製品の比較
調べた範囲ではWikiが一番わかりやすく、一覧性もよかった。
Mobile Device Management - Wikipedia
こちらの比較表は内容は古いけど、提供形態(クラウド型かオンプレ型か)に関する情報があった。
参考資料
ややこしいiOSアプリ配布方法の俯瞰とケースバイケースの配布方法選定 - Qiita iOSアプリ配布方法についてわかりやすく記載されている。
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
2014年の資料だけど、幅広い機能が図入りで解説されている。
この記事では触れてないけど、便利そうな機能
- DEP (Device Enrollment Program)
- Single App Mode
iOSアプリリリースのポイント - Chipstar Lightの気づき
あとから見つけた。。。この記事の概要に相当する内容がスッキリわかりやすく書かれてます。
エンタープライズネットワークで Apple 製品を使う(公式)
iOSが接続する接続先やプロトコルの一覧
アプリケーションの配布に関するガイド(公式)
目的の内容を探しづらいけど、内容は豊富。トラブルシューティングに関する記載もある。
Apple Developer Program の管理者が最低限意識すべきこと
必要な最新情報がわかりやすくまとまっていた