iOS14で非公開サーバーかつオレオレ証明書でUniversal Linksをテストする方法


今回はiOS14で非公開サーバーかつオレオレ証明書でUniversal Linksをテストする方法について投稿したいと思います。

iOS14でUniversal Linksのapple-app-site-associationファイルがCDN化されました。

参考:iOS14 におけるUniversal Links の変更点
https://recruit.gmo.jp/engineer/jisedai/blog/ios14-universal-links/

それに伴い、本番環境では公開されているサーバーでないとapple-app-site-associationファイルをCDN化できず、Universal Linksが働きません。
そこで下記2つの手順を行うことで非公開サーバーかつオレオレ証明書でUniversal Linksをテストできます。

  • alternate modeをdeveloperにする
  • デバイスのAssociated Domains Development をONにする

alternate modeをdeveloperにする

iOS14から下記でalternate modeというのが登場しています。

alternate modeには下記modeがあります。

  • developer

開発者モードのデバイスのみがドメインにアクセスできることを指定します。このモードでは、システムが信頼しない証明書を含め、Webサーバーで有効なSSL証明書を使用できます。man-in-the-middle攻撃などのセキュリティ問題にユーザーをさらさないようにしてください。追加の予防措置として、開発プロファイルで署名されたアプリのみが開発者モードを使用でき、ユーザーは使用するすべてのデバイスでオプトインする必要があります。

  • managed

モバイルデバイス管理(MDM)プロファイルで管理されているデバイスのみがドメインにアクセスできることを指定します。このモードでは、MDM管理者の同意が必要です。

  • developer+managed

developerとmanagedの同時に両方指定

そのため開発環境の非公開サーバーでUniversal Linksを使用する場合、developerを使用します。
また、developerの際はオレオレ証明書でもUniversal Linksを使うことができます。
※ 本番環境でmode=developerのパラメータを付与しないように注意してください

デバイスのAssociated Domains Development をONにする

developerの説明に

users must opt in on any device they use.

とあるように、mode=developerというパラメータを付与した状態だけではUniversal Linksは動作せず、
デバイスで下記設定を行う必要があります。

設定アプリ -> デベロッパ -> Associated Domains Development をONにする

まとめ

上記2つの設定を行うことで、非公開サーバーかつオレオレ証明書でUniversal Linksをテストできます。
iOS13ではalternate modeも無くオレオレ証明書ではUniversal Linksが有効化されなかったようなので、開発しやすくなったかもしれません。

次の記事は

明日は食べログアドベントカレンダー2020の4日目の記事が公開されるのでご期待ください!