Apple Developer Program では iOS アプリを実機上で実行できる端末数が100台までという制限があります。ある程度の人数のエンジニア(開発機たくさん)や QA チーム(検証機たくさん)を抱えた大企業がこの100台制限にかかったとき、Enterprise Program をどう活用したらよいのか調べたときのメモです。
この記事は 2017/02/01 ごろの情報に基づきます。情報に間違いがあればご指摘ください。
TL;DR
基本は AppStore 公開と開発のために Apple Developer Program 一つを契約する。100台制限が問題となる場合は、追加で Apple Developer Enterprise Program を契約する。さらに台数制限が問題となれば必要な分だけ Apple Developer Enterprise Program を複数契約する。
調査したことまとめ
Apple Developer Program / Apple Developer Enterprise Program について
比較表 [iOS] Apple Developer Program と Apple Developer Enterprise Program の違い | Developers.IO
登録 - サポート - Apple Developer
- Developer Program 11,800円/年
- DUNS 番号ありの組織(チーム)登録または個人(一人のみ)登録のどちらか
- AppStore で公開できる(iTunes Connect アカウントが付属する)
- AdHoc/Xcode 実行の端末登録制限100台あり(iPhone/iPad/Watch/iPodTouchごとに100台)
- Enterprise Program 37,800円/年
- DUNS 番号ありの組織登録のみ
- AppStore で公開はできない(iTunes Connectアカウントが付属しない)
- AdHoc/Xcode 実行の端末登録制限100台あり(iPhone/iPad/Watch/iPodTouchごとに100台)
- InHouse ビルドできる
- In-App Purchase の設定およびテストはできない(iTunes Connectアカウントがないため)
Program 登録の制限事項
Program 開設に使用した AppleID は制限が強く、開設専用に AppleID を作成したほうが良さそうです。
登録の前に - Apple Developer Enterprise Program
- 同一の AppleID で Developer Program や Enterprise Program を複数登録することはできない。AppleID にただ一つの Developer Program/Enterprise Program だけが結びつく。Developer Program/Enterprise Program を開設した AppleID は他のDeveloper Program/Enterprise Program の Member になることができない
- 同一の企業(同一 DUNS 番号)で Developer Program を複数登録することはできない
- AppleID が異なれば同一の企業(同一DUNS番号)でEnterprise Programを複数登録することはできる
- Developer Program/Enterprise Program への Member 追加は無料で無制限
- Member は一つの AppleID で複数の Developer Program/Enterprise Program へ重複して加入できる
その他のアカウントについて
- Member Center (Apple Developer Site)
- 上記 Developer Program/Enterprise Program に含まれる開発者の管理機能のこと
- 開発ユーザー登録・証明書・開発機・AppID・Provisioning Profile を管理する
- iTunes Connect
- AppStore でのアプリ公開作業をするところ
- iTunes Connect ユーザ登録・アプリリリース・売り上げ確認・支払い管理をする
- Developer Program へ登録すると自動的に iTunes Connect へもアカウント作成される
- Enterprise Program は結びつかない
Member の権限について
全体責任者のチームエージェント(Agent)が一人存在する。通常は開発責任者を Admin としてそちらで管理を行う。
- チームエージェント(Agent) => Apple に対する窓口・契約管理者・支払い・全権限所有
- チーム管理者 (Admin) => Member 管理、デバイス管理、AppID, Provisioning Profile の作成・編集権限
- チームメンバー(Member) => 証明書の登録、Provisioning Profile のダウンロードなど
iTunesConnect の権限について
全体責任者のチームエージェント(Agent)が一人存在する。他のユーザは必要に応じて Role を調整する。
iTunes Connect Developer Guide | iTunes Connect Properties
- チームエージェント(Legal, Admin) => Apple に対する窓口・契約管理者・支払い・アプリ転送、アプリ削除など全権限所有
- iTunesConnectユーザ => Role で権限管理される
- Admin => 契約以外の全権限所有
- Finance => 財務レポート、売上、iAdなどへのアクセス権限
- Sales => 売上、iAd などの権限。Finance より弱い権限
- AppManager => 特定のアプリに関する強い操作権限
- Developer => 特定のアプリへのアクセス。アプリバイナリアップロード
- Marketer => ContactUs権限、マーケティング担当者
- テストユーザ => テスト版アプリの実行、テスト環境へのアクセス
更新系作業
- Developer Program
- 証明書は1年で更新(Admin・Member)
- Provisioning Profile は1年で更新(Admin)
- 年一回端末登録の見直し
- Enterprise Program
- 証明書は3年で更新(Admin・Member)
- Provisioning Profile は1年で更新(Admin)
- 年一回端末登録の見直し
アプリの署名について
証明書 - テクニカルサポート - Apple Developer
署名IDや証明書の管理
- .ipa の署名は「Provisioning Profile + 証明書」の組み合わせで行う
- Provisioning Profile
- Provisioning Profile には個別の AppID が結びついている
- Provisioning Profile には Development(開発), Distribution(AdHoc, AppStore, InHouse)の三種類がある
- ワイルドカード AppID による AdHoc, InHouse Provisioning Profile を作ることはできる。ただし Push 通知・iCloud・AssosiatedDomains などの一部が使えないため、用途は限られる
- 証明書
- 証明書には iOS Development(開発)と iOS Distribution(AdHoc, AppStore, InHouse)がある。Provisioning Profile の種類に合わせて使用する
- iOS Development 証明書は Member 個人に結びつき、個人で秘密鍵を管理する
- iOS Distribution 証明書は Admin が作成し、管理する
- 秘密鍵は Mac キーチェーンから .p12 ファイル形式でエクスポートして管理する
AppID について
- AppID は iOS アプリの BundleID のこと
- Apple Developer サイトから管理する
- iTunes Connect/Developer Program/Enterprise Program の全アカウント・全世界で AppID はユニークでなければならない