概要
アプリのApp ID Prefixを変更したい場面が出てきて色々調査したため、その内容を整理しておきます。以下の内容が不明な方向けです。
- App ID PrefixとTeam ID、Bundle IDの関係性
- 新規アプリ作成時にApp ID Prefixが複数存在する場合、どれを選ぶべきか
- App ID Prefixは変更可能か
※本記事の情報は個人で確認したものであり、情報の正確性を保証するものではありません。App IDの仕様についても今後変更される可能性があります。
App IDの構成
App IDはApp ID Prefixと呼ばれる、大文字英数10桁の識別子とBundle ID(Bundle Identifier, App ID Suffix)と呼ばれる識別子で構成されています。
<App ID Prefix>.<Bundle ID>
例) ABCDE12345.jp.hogehoge.hogeapp
App IDは開発者を識別するためのものであり、他の開発者とは別のものが割り当てられます。基本的にはTeam IDと呼ばれるデフォルトのApp ID Prefixのみですが、過去にApp ID Prefixを開発者が発行できた経緯があり、開発者によっては複数のApp ID Prefixが存在します。
Bundle IDはアプリをユニークに識別するためのもので、このIDが異なる場合は別アプリとして認識されます。
新規にアプリを作成し、App IDを発行する際には、Team IDを含めたこれらApp ID Prefixから選択することとなります。
App ID PrefixはKeychainでのデータ共有機能に影響する
App ID Prefixを共有するアプリ間ではKeychainを介してデータの共有が可能です。逆を言えば、App ID Prefixを変更すると、もとのKeychainデータにアクセスすることはできなくなりますので注意が必要です。
他にも、App ID Prefixを共有していないアプリ間ではKeychainを介してデータの共有ができないため、新規アプリ作成時には、App ID PrefixをデフォルトのTeam IDに揃えておく、などの考慮が必要です。
App ID Prefixは変更できるか
- Bundle IDがワイルドカードを利用している場合、App ID Prefixのみを変更した同じ形式のBundle IDを作成することで、新しいApp ID Prefixのものへ移行可
- Bundle IDがワイルドカードを利用していない場合(explicit)
- アプリのバイナリをAppStoreConnectへアップロードする前であれば、該当のApp IDを削除し、新しいApp ID Prefixを指定し、再度作成することで移行可
- アプリのバイナリをAppStoreConnectへアップロードした後であれば、以下のエラーがでてApp IDが削除できないため、移行不可

なお、アプリの配信先の国をすべて削除する、開発者アカウントのAdmin権限でAppStoreConnect上でアプリを削除するなどを行なっても上記のエラーは解消できませんでした。
ただし、Appleに依頼すれば変更できる可能性も
Appleの開発者サポートに確認したところ、デベロッパーアカウントのアカウントホルダーからの依頼があれば、Appleの内部チームがその内容を審査し、受け付けてくれれば変更を実施してくれることもあるようです。(リードタイムは明確になってはおりませんが、少なくとも数日は要するようです)