Edited at

[iOS] App ID Prefixについて


概要

アプリの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が削除できないため、移行不可




There is a problem with the request entity

The App ID '削除しようとしたAppID' appears to be in use by the App Store, so it can not be removed at this time.


なお、アプリの配信先の国をすべて削除する、開発者アカウントのAdmin権限でAppStoreConnect上でアプリを削除するなどを行なっても上記のエラーは解消できませんでした。


ただし、Appleに依頼すれば変更できる可能性も

Appleの開発者サポートに確認したところ、デベロッパーアカウントのアカウントホルダーからの依頼があれば、Appleの内部チームがその内容を審査し、受け付けてくれれば変更を実施してくれることもあるようです。(リードタイムは明確になってはおりませんが、少なくとも数日は要するようです)


参考