2022.10.3
そろそろADEP契約更新ができなくなるかも知れない…その後(2)
前回の投稿で、ADEP契約更新の2022年後半の状況をシェアしました。
本稿はその続き。ADEP契約更新ができなかった現場で見られた、InHouseアプリの興味深い現象についてシェアします。
ADEPの契約終了後91日目以降もInHouseアプリは起動する
以前にADEP契約を更新せず放置するとInHouseアプリはどうなるのかという投稿で、契約終了日から90日間しか起動させられず、91日目以降は起動できなくなると書きました。
これはApple の公式ドキュメントである Switching to the Apple Developer Program にも
Your software will continue to run for 90 days after expiration.
と明記されている通りです。
しかしながら、実のところADEP更新を拒否されて期限日から91日目以降でも、InHouseアプリは動き続けるようです。この現象は、弊社がInHouseからカスタムAppへの移行をご支援したケースで、複数台のiOS端末で確認ができました。具体的には、以下のような感じです。
年月 | 動き |
---|---|
2022年2月 | ADEPが5月に期限切れるとのメールが届く |
2022年3月 | ADEP更新の申請し、拒否される |
2022年5月 | ADEPの期限到来。以後、ADEP の Developer サイトは操作不能 |
2022年8月 | 期限切れから90日が経過 |
2022年9月〜 | 期限切れ以降もInHouseアプリが起動し続ける |
こいつ、動くぞ!…ではないですが、動かなくなる筈のものが動いている状況が観測されました。
その時、InHouseアプリの期限関連の状態は…
技術的に考えると、InHouseアプリを起動できなくなる仕組みは2つあります。
- (A) Provisioning Profile の期限切れ
- (B) InHouse用証明書が失効する
前者(A)については以前に以下投稿で詳細を解説しました。
ADEPのInHouseアプリは1年に1回必ずビルド・再署名しなければならないのは本当か?
弊社が体験したケースでは、InHouseアプリの署名時に使った Provisioning Profile の期限は2023年。ADEP期限切れから90日経過したとしても、Provisioning Profile のことだけを考えれば起動して当然です。
一方後者の(B)は、Apple公式ドキュメントにもある証明書検証に絡むものです。InHouse用の証明書を誤ってrevokeすると一斉にアプリが起動しなくなるという、あの証明書失効状態になってしまう場合。ADEP終了日90日後にAppleが当該アカウントのInHouse用証明書を強制失効する可能性ですね。
弊社で遭遇した上記アプリの場合、当該InHouseアプリの署名時に使用していた証明書でOCSP(証明書有効性を確認するプロトコル)の手動問い合わせしたところ、Cert Status: good が返ってきてInHouse用証明書の失効は確認されませんでした。
ADEP契約終了から91日以上経過しても、AppleがInHouse用の証明書を強制失効していない可能性があるということです。
生成・配布済みInHouseアプリの署名時に使った Provisioning Profile の期限が切れておらず((A)は到来していない)、かつ、それに紐づく証明書の有効期限も切れていない((B)にもなっていない)なら、起動し続けて当然でしょう。
ADEP契約が拒否された場合の身構え方
紹介した振る舞いを踏まえると、万が一ADEP契約が拒否された場合の身構え方が若干変わると考えます。あくまで弊社が経験した1ケースのみを根拠にしていますが、
- 基本的にADEP契約終了日から90日以内にカスタムApp移行等の対応を完了させるべき
- だが最悪、移行完了が間に合わなくても91日目以降も InHouse アプリは動き続けるかも知れない
- 本当のデッドラインは Provisioning Profile の期限日かも知れない
と捉えておくのもアリかもしれないと感じました。
「かも知れない」を期待して(?)、最大限アプリ起動可能期間を確保すべく、ADEP契約終了直前にInHouse用の更新版Provisioning Profileを生成しておくのは良いことでしょう。ADEPの更新が拒否されて91日以上が経過しても、上記(B)をAppleが行わない限り Provisioning Profile さえあれば何とかなるからです。(と言っても最大約1年間の延命可能性を得られるに過ぎない)
Xcodeでビルドや再署名することなく Provisioning Profile を単体配布する方法については、ADEPのInHouseアプリは1年に1回必ずビルド・再署名しなければならないのは本当か?の投稿を参考にして下さい。Provisioning Profile の単体配信による「延命」はこうした時に役立ちます。
ただ、(B)が実施されるとInHouseアプリが動かなくなるのは変わらないため、結局91日目以降はビクビクしながら業務アプリを使い続けることになってしまいます。余り健全とは言えませんから、やはり拒否されたなら1日も早くInHouseから脱却することが望ましいです。
本稿では、ADEP更新が拒否されたあと実際にInHouseアプリはどうなるのか、弊社が関係した事例を紹介しました。
本サイトでは、「かも知れない」をベースに執筆することは極力避けていますが、多くの感心が寄せられていることとそもそも情報が限られていることを踏まえ、あえて投稿しました。弊社体験1例のみと、サンプルが少ない情報である点は強調しておきたいと思います。