🐌

Apple Developer Program の法人切り替えでつまずいた話

2023/10/24に公開

こんにちは、 kenty です。

iOSのリリース周りって初見殺しが多くないですかね? 未だに理解が追いついていないです。
今回は Apple Developer Program (以下 ADP) の登録を 個人→法人に切り替えた際、初見殺しに遭遇したので備忘録としてまとめてます。

TL;DR

  • ADP には個人登録と法人登録がある。法人登録の方がチーム開発では運用しやすい。
  • 個人登録の運用時にApp Store Connect(以下 ASC) で招待したユーザーは、切り替え後の ADP にユーザー登録されない。ADPから再招待する必要がある。

ADPは法人登録の方がチーム開発しやすい

個人と法人の違いは、公式でも言及されてます。
https://developer.apple.com/jp/help/app-store-connect/manage-your-team/overview-of-accounts-and-roles/

Apple Developer Program の登録者が個人である場合、App Store Connect へのアクセス権は最大 50 の追加ユーザに付与できます。ただし、追加ユーザがアクセスできるのは App Store Connect のみとなります。つまり追加ユーザは、Apple Developer Program のメンバーとはみなされず、他のメンバーシップリソースや特典の利用もできません。

Apple Developer Program に組織として登録した場合、チームに追加できるメンバーの数に制限はなく、またすべてのユーザが、App Store Connect やその他すべてのメンバーシップリソースとメンバーシップ特典を利用できます。

上記の通り、チームメンバーの追加は

  • 個人登録の場合 → ASC
  • 法人登録の場合 → ADP

となります。

個人登録では、開発者メンバーはADPにアクセスできません。証明書周り等の編集は、 Account Holder に毎回依頼する必要があります。効率が悪いです。
法人登録にすることで、ADPの certificates identifiers & profiles (= "証明書、id、プロファイル", 以下certificates) 等にアクセスでき、証明書や配布まわりのタスクをアカウントホルダーじゃない方が対応できます。

逆に、個人登録でチーム開発進めた方が良いケースを考えてみました。そもそも対応した経験が浅いので、間違ってるかもです。

  • Account Holder が開発者で、バリバリ開発に携わる場合
  • チーム開発しない場合
  • お金がない場合

みてきたように、登録の違いによって差異があることは頭に入れておくと良いです。
そして、チーム開発をしていくなら、法人登録で運用していくことをお勧めします。
個人登録からチーム開発しようとしているなら、クライアント様に打診してみましょう。

個人→法人に切り替える方法

切り替えには以下の記事が参考になります。Appleの担当者とメールやり取りする必要があります。
https://develop.hateblo.jp/entry/apple-dev-corporation

開発者メンバーの ADP に Certificates が表示されない!

引っかかった初見殺しについてです。
Apple の担当者とのやり取りを終え、無事法人登録に切り替わりました。開発者メンバーはADPにアクセスできるようになりました。
しかし、なぜか certificates が表示されず。。。その時の条件をかくと、以下の通りです。

  • 個人登録だった時に、開発者メンバーとして追加していた(ASC)。権限は Admin。
  • 法人登録後、時間をおいてアクセスしても certificates にアクセスできなかった。
    • certificates のURLを直接叩いたら、「Access Unvailable」と表示された。
      certificates identifiers & profiles(証明書、id、プロファイル)にアクセスできない図

法人登録になったのでアクセスできるはず...なぜでしょう?

個人登録だった時の開発者はADPから再招待すべし

前のセクションでも触れましたが、個人登録の場合はASCから招待しており、ASCにしかアクセスできません。アカウントを法人登録にしても、元々のメンバーの権限は更新されないので、ADPの メンバーシップリソース である certificates にはアクセスできなかったのです。

対処法はすごく単純で、Account Holder にもう一度招待してもらうと ADP のメンバーになり、解決します。

よくよく探すと公式でも言及されてました。
https://developer.apple.com/jp/help/glossary/

Admin
Admin(管理者)の役割を持つユーザーはチームの第2連絡先となり、Account Holderと同じ責任を多数担います。Adminはすべてのアプリにアクセスでき、Account Holder以外のユーザーの役割を編集できます。

組織のチームのAdminは、「Certificates, Identifiers & Profiles(証明書、ID、プロファイル)」へのアクセス権を持ち、証明書、ID、プロファイル、UDID、App IDなどを管理できます。

注:組織内のユーザー全員が、App Store Connectやその他すべてのメンバーシップリソースとメンバーシップ特典を利用できます。アクセス権は役割の種類によって調整できます。ただし個人としてApple Developer Programに登録した場合、その他のユーザーをApp Store Connectで追加しても、これらのユーザーはApp Store Connectへのアクセス権を得るだけで、Apple Developer Programの参加チームのメンバーとはみなされません。役割について詳しくは、こちらをご参照ください。

送られてくる再招待メールから参加したら完了です。

招待メール

Apple Developer に参加した後にやること

以下を参考にして、諸々の登録をします。

https://i-app-tec.com/ios/apply-application.html
https://zenn.dev/mhackit/scraps/355fe56dc7b4c8

終わりに

解決策は至極単純ですが、気づくまでしばらく時間がかかりました。こういった開発アカウント周りの解像度が高いと、有識者として重宝されるのではないでしょうか?
モバイルアプリ開発はコーディング以外にもやること沢山あるから一つずつ覚えていかないとですね。道のりは長い。🚶‍♀️

Flutter大学

Discussion