通常エクステンションを利用するアプリは、アプリとエクステンションで別々のApp IDを用意します。
ステッカーに関しては、Bandle IDが自動的に決定されるため、自分で作る必要がありません。
自動で作られるBandle ID: アプリのApp ID.StickerPackExtension
さらに、アプリに含めるProvisioning Profileも、自動生成されて利用されます。
このProvisioning Profileは、ワイルドカードApp IDのもので、無い場合は自動的に生成されて利用されており、もし自分でワイルドカードのApp IDを作っていた場合は、そのApp IDが利用されます。
ワイルドカードApp IDとは、アスタリスクが含まれているApp IDですが、この場合のワイルドカードApp IDは、アスタリスクだけのものです。
ステッカーは、アスタリスクのApp IDが実際に利用されるというわけでなく、このApp IDのPrefixだけが利用されます。
application-identifierやkeychain-access-groupsには、アプリのApp ID Prefixではなく!
ワイルドカードApp IDのPrefix.Bandle ID
のように利用されているのでした。
この仕様で、今回、大問題を発生させてしまったのであります!
App ID Prefixは、Apple Developerにユニークに割り振られるIDのようですが、現状追加や編集ができません。
いつ追加されたのか把握はしていませんが、長くApple Developerを継続している人は、複数のIDを持っているはずです。
僕は現在選択できるものが4つあります。
そもそも複数のApp ID Prefixを持っている開発者は少ないのかもしれない(?)
そして大問題となるのが、現状作成できないApp ID Prefixを持ったApp IDが、App ID一覧に存在していることです。
現在選択できる4つ以外にも、異なるApp ID Prefixが過去にあったと。
アプリを更新する際は、application-identifierが同じバイナリでないと、更新できません。
多分、公開されたとしても、一度アンインストールが必要に。
keychain-access-groupsが異なる場合は、keychain-accessでパスワードを保存していたりとか、そういったデータは引き継がれなくなりますね。
その現状作成できないApp ID Prefixを利用した、ワイルドカードApp IDを、過去に作ってしまっており、それがステッカーに利用されていました。初期の開発の頃にデバッグ用に使ってましたね。
そしてそんな諸々の認識がない状況で、App ID一覧から、不必要と思ってしまったワイルドカードApp IDを削除してしまったのでありまーす!
App ID Prefixが存在しないため、作り直せないと。
その結果ステッカーが更新できなくなりました。
いや、更新はできそうだけど、上記のように一度消してもらわないといけないのかもしれなく。
先ほどAppleさんへヘルプを投げました。
iTunes ConnectのContact USに、「Appデベロッパ 日本語サポート」が増えていたので、日本語だけのメールを送ってみました。
これは改善できるのか、、、
—
Appleから返信をもらえました。
内容は、keychainの指摘のみで、更新は問題ないということでしたが、実際のアップデートはまだ行っていないので、まだわかりません。
大丈夫そうかな?