Edited at

大企業が Apple Developer Program と Apple Developer Enterprise Program を契約するときに知っておきたい情報まとめ

More than 1 year has passed since last update.

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 はユニークでなければならない