今回、iOSアプリのPrefixIDをTeamIDに変更する必要に迫られて変更しました。
レアなケースだと思いますが、何らかの事情で変更したいという人もいるかもしれないのでご参考に。
アプリのIDについて
まずおさらいですが、iOSのアプリはいくつかのIDによって識別されます。
これはAppStore内でのアプリのURLに含まれている数字でAppStore Connectなどでも確認できます。おそらくこの数字はAppStore Connectに登録された順に振られているような気がするので若い番号のアプリは老舗アプリなんじゃないかと思います。
ちなみにComgateの爆速オセロは621245609番でURLはこれです。
https://apps.apple.com/jp/app/id621245609
これもAppStore Connectで確認できますが、こちらは開発者が決めることができます。
アプリを作りはじめる時にDeveloper Centerで登録するアプリ固有のIDです。
jp.comgate.appnameのような形式になってます。
これはほとんどの場合TeamIDが使われています。
TeamIDはアプリ開発チームごとに振られるIDでAppleからもらえる英数字の10桁(僕のは10桁でした)のIDです。
Prefixとあるように、バンドルIDの前にこのIDを合体させた
TeamID. jp.comgate.appname
のようなIDでアプリが管理されているようです。

一人でアプリを作っているので僕のTeamIDは実質的に僕専用のIDになっています。
各種のIDはDevelopper Centerで確認できます。

App ID Prefixは基本的には変更できない
さっき書いたように、普通はTeamID. jp.comgate.appnameという形でTeamIDとバンドルIDを合体したIDでアプリが管理されています。
普通は変更する必要はないし変更することもできないのですが、古いアプリだとPrefixがTeamIDではなく開発者固有のIDになっていることがあります。
いつの頃からかPrefixにはTeamIDが使われるようになったようですが、僕のように古くからアプリを作っているとアプリによって混在した状態になっているので時々混乱します。
たまに混乱するものの、あまり気にしてはいなかったのですが先日、古いアプリをアップデートしようとした際にプッシュ通知ができないという事象にはまっていました。
プッシュ通知にはGoogleのFirebaseを使っているのですが、調べているとこんな情報を発見。
アップデート中のアプリはPrefixがTeamIDになっていなかったので、ビンゴ!まじか!ということでPrefixをTeamIDに変える必要に迫られました。
PrefixをTeamIDに変更する方法
最初に書いたように、基本的にはPrefixを変更することはできません。
Developer Centerでも自分で変更することはできないようでした。
変更する場合は、Appleに問い合わせをしてPrefixをTeamIDに変更したいことを伝えることで、Apple側で変更の対応をしてくれます。
Appleのサポートとはアプリがリジェクトされた時などもやりとりしますが、英語がよく分からないので相手の言っていることも朧げにしか理解できず、こちらから伝えたいこともうまく伝えられず四苦八苦してるので、あまり印象が良くないです。

いちど、突然英語で電話がかかってきたことがあって焦ったことがあります。
ところが、知らなかったのですが日本語で受付してくれる窓口があるんですね。
下記サイトからだと日本人が日本語で対応してくれます。
お問い合わせ – Apple Developer(https://developer.apple.com/contact/topic/select)
問い合わせをしたあとはメールのやり取りになりますが、日本人の担当者が対応してくれてスムーズにやり取りができました。
流れとしては、
週末をはさんで、約1週間で変更できました。
Apple側でのPrefixの対応が3〜4日かかりました。

思ったより時間がかかったので忘れられているんじゃないかと思って、途中で一度確認の問い合わせをしてしまいましたが無事終わりました。
Prefix変更の影響
問い合わせをした時に説明を受けたのですが、Prefixを変更してしまうと影響を受けるアプリもあるようです。
具体的にはキーチェーンを使っているアプリとかは、アプリをアップデートした時に元のキーチェーンが使えなくなるようです(と解釈しましたが、詳しくは英語の下記ページを参照)。
Technical Note TN2311: Managing Multiple App ID Prefixes(https://developer.apple.com/library/archive/technotes/tn2311/index.html)
僕のアプリはキーチェーンは使ってなかったので特に影響なしです。
ちなみにPrefixが変更された後にアプリをアップデートのためにAppStore Connetにアップロードした際にも、そのような内容の警告が出ました。
こちらは警告なので問題なければ無視して良いようです。
最後のオチ
今回、プッシュ通知ができなくなったのを解消するためにPrefixの変更をしたのですが、結果、Prefixを変更してもプッシュ通知は動作しませんでした。
お恥ずかしい話、普通にプログラムがバグっていたのでPrefixを変更した後にプログラムも修正して無事プッシュ通知が送れるようになりました。
なので、プッシュ通知を送るために本当にPrefixを変更する必要があったのかどうかは、よく分かりません。
まぁ、PrefixをTeamIDに統一できた方が分かりやすいので、変更できたのは良かったのですがね。
コメント