iOSアプリの種類や配布に関するメモ

スポンサーリンク

iOSアプリの配布について調べていたら、やたら道のりが長かった。
断片的な情報はネットで沢山あるのだけど、全体像がわかりにくい。
ある程度理解できた気がするので、調べた内容を公開。

f:id:sato_susumu:20171109003443j:plain

メンバーシップの種類

アプリを配布するためには、いずれかの登録が必要。
メンバーシップ毎に選択できるアプリ配布方法に違いがある。

個人 法人 教育機関
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配布(評価用配布)
  • App Storeを介さずに配布可能
  • 配布先デバイスは事前登録した100台まで
  • バイス追加の都度、UDID登録、プロビジョニングプロファイル更新、リビルドが必要
In-House配布(企業内配布)
  • App Storeを介さずに配布可能
  • 配布先デバイスは無制限
  • 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/iPadMacに接続して、まとめて設定やアプリインストールができる。

対応OSはMacのみ。Mac App Storeでダウンロードできる

参考: 複数のiPadに一括でアプリをいれるタスクが回ってきた(MDMサーバなし編) - Qiita

OTA(Over The Air)配信を使う

(法人向けアプリの場合)Appleが推奨している記載が見当たらない。アプリの更新が面倒。

Ad Hocビルド、In-Houseビルドしたアプリを配布できる。
HTTPS通信できる環境に必要なファイルを置く必要がある。

参考:無線経由のプロファイルの配布と構成(公式)

参考: 「現在ダウンロードできません。」と表示された場合の対処方法

iTunesを使う

(法人向けアプリの場合)Appleが推奨している記載が見当たらない。アプリの更新が面倒。

Mac版でもWindows版でもOK

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 をダウンロードし、インストールするようにします。iPhoneiPadiPod touch を保護するには、これが最善の策です。

参照:iOS でカスタムのエンタープライズ App をインストールする

信頼の確立、再検証にはインターネットの接続が必要

信頼を確立する際は、App の開発元の証明書を検証するため、インターネットへの接続が必要です。ファイアウォールをお使いの場合は、https://ppq.apple.com への接続を許可するように設定しておいてください。App を信頼する際にインターネットに接続されていないと、デバイスには「未検証」と表示されます。この状態の App を使うには、インターネットに接続してから、「App を検証」ボタンをタップしてください。
App の初回の検証が済んだ後、信頼を維持し続けるため、iPhoneiPadiPod 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の登録に必要な情報の一つ。

D-U-N-S Numberとは

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ファイルを書き出す方法

パスワードが必要なことは忘れがちなので注意

.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 の管理者が最低限意識すべきこと
必要な最新情報がわかりやすくまとまっていた

困ったときのおまじない

  • Xcode上でのプロファイル再取得
    Xcode > Preferences > Accounts > Download Manual Profiles
  • Macの再起動