Apple DeveloperとiTunes Connectに追加するユーザーとその権限

Apple DeveloperとiTunes Connectに追加するユーザーにはそれぞれ様々な権限を付与することができる。

付与する権限によっては、自分が開発しているアプリ以外の情報やレポート情報などを参照したり、それらを修正したりいろんなことが出来てしまう。

自社アプリしか作ってない場合や少人数で開発している場合は、とりあえずadmin権限もらってよしなにやれば良いんだけど、これが受託開発とかしていると、まぁ、そんなザルな権限を付与してもらうわけにはいかないので、適切な権限をもらうことになる。

ただ、この権限まわりがややこしい上に日本語のドキュメントが古くて使い物にならなかったり、わかりやすい情報が容易に参照できない場所にあったり、あと取引先があまりiTunes ConnectとかApple Developerについて詳しくない場合にはこっちが適切な権限を選んでください、と言うしかなかったりするので、その辺の理解するためにまとめた。

Apple DeveloperとiTunes Connectのそれぞれのユーザー権限の概要

Apple Developerのユーザー権限

Apple Developerはユーザー権限が3種類しかないうえに、3つのうちAgentの権限はApple Developer Programに最初に登録したメールアドレスのユーザーのみなので、基本的に付与できる権限は、AdminとMemberだけで理解は早い。

しかし、シンプル故に細かいユーザー設定が出来ないのが難しい所。

各権限でのできることは以下の通り。

https://developer.apple.com/support/roles/ より抜粋

この表のうち、Memberの白丸は閲覧権限しかないという感じ。

また、Create and Remove Development Certificatesの部分は黒丸で表記してあり、普通に証明書の発行ができるかと思いきや、あくまでDevelopmentの証明書が作れるだけでDistributionの証明書は作れるわけではない。
なのでその場合は、別途Adminユーザーにお願いするしかない。

これを見て分かる通り、Member権限は本当にただ開発するだけで、それ以外は何も出来ない。
各種証明書の発行、Provisioning Profileの発行、テスト端末の登録/管理、ユーザーの登録/管理などができず、基本的に情報の閲覧しかできないので、Member権限はほとんど何も出来ないと言って良いだろう。

また、Apple Developerの権限は、iTunes Connectの権限と違ってアプリ毎に付与ができないので、メンバー権限のあるユーザーでも他アプリの情報/テスト端末情報が見れてしまうのも場合によっては問題かもしれない。

まぁ、他アプリの情報っていってもApp IDや証明書が発行されているかどうかだけだし、テスト端末情報といってもランダムな文字列のUDIDが書いてあるだけなので、実質問題はないのだが。

一応書いておくと、Apple Developerのユーザー追加はしなくても開発することはできる。
ただその場合は、テスト端末の登録、各種証明書の発行、Provisioning Profileの発行を全部してもらって、開発者は証明書とProvisioning Profileを開発機にインストール、XCodeで「Automatically manage signing」のチェックを外して、インストールしたProvisioning Profileを選択しなければならない。

このユーザー登録なしでの開発は、証明書の期限が切れたり、新しいテスト端末を追加しようとしたら、その度に権限を持っているユーザーに対して証明書やProvisioning Profileの発行をお願いしなければいけないので、結構手間がかかる。
なので最低限Admin権限があると取り回しがしやすい。

iTunes Connect

こっちのユーザー権限は全部で7つ。
そのうちLegal権限は最初に登録したメールアドレスのユーザーのみなので実質6つなのだが、複数の権限を付与することが出来る分、話は結構複雑。
とりあえずiTunes Connectのヘルプに書いてあった各権限のできることは以下の通り。

iTunes Connectのユーザー登録ページの?ボタンを押すと出て来る表。
なんでドキュメントにこの一覧が書いていないのか。

このうち、Admin権限は全権限をもっているので他に並列して付与することができず、FinanceとSales、App ManagerとDeveloper/Marketerの権限の組み合わせもできない。
また、AdminとFinance以外はアプリ毎にアクセス権限を付与することが出来る。

以下にざっくりと出来ることと最低限付与しないといけない権限の関係をまとめた。

出来ること 権限
TestFlightの外部テスターの作成/編集 App Manager
アプリ情報の作成と審査の提出 App Manager
アプリ情報の編集 Marketer
アプリ内課金の作成/編集 Marketer
プロモーションコードの作成/編集 Marketer
リリースビルドのアップロード Developer
TestFlightの内部テスターの作成/編集 Developer/Marketer
売上情報/アナリティクスの閲覧 Sales

こんな感じ。

また、ざっくり出来ることの多さで言えば、

Admin > App Manager > Developer = Marketer
Admin > Finance > Sales

という感じだろうか。
左側が上位互換の権限だと考えて良い。

iTunes Connectに関しても、Apple Developerと同じでユーザー登録しなければ開発できないか、というと別にそういうわけではない。

iTunes Connectにアップロードするのが他の誰かであれば、XCodeのOrganizerからアーカイブしたアプリを選択してExportして、アップロードするユーザーに渡せばよい。

アップロードするユーザーは、XCodeに付属の自分のApplication Loaderでアーカイブファイルを取り込んでアップロードすればよい。

ただ、アップロードはMacからじゃないとできないし、Application Loaderとかはバージョンによって最新のアプリを取り込んでアップロードとかできなかったりするので、開発者は最低限Developerの権限ぐらいは持っておくと、アップロードするユーザーとのバージョン調整に手間取らなくて良いかもしれない。

Read More