Open4

iOSでユニバーサルリンクがうまく動かない場合の切り分け

inushimainushima

公式手順
https://developer.apple.com/jp/documentation/technotes/tn3155-debugging-universal-links/

iOSの開発モードで検証

「設定」で「デベロッパモード」をオンにします。ヘルプが必要な場合は、「デバイスでデベロッパモードを有効にする」を参照してください。

「設定」>「デベロッパ」と選択し、「ユニバーサルリンク」セクションまでスクロールし、「関連ドメインの開発」をオンにします。

「診断」を開き、完全なURLを入力します。インストールされているアプリに対してこのリンクが有効であるかどうかのフィードバックが表示されます。
inushimainushima

macのswcutilコマンドで検証ができる

sudo swcutil dl -d <domain>を実行して、AASA JSONを正常にダウンロードできることを確認します。
sudo swcutil verify -d <domain> -j <path-to-JSON> [-u <URL>]を実行して、ダウンロードした.json AASAファイルの内容を確認します。
inushimainushima

swcutil dl -dの結果は、jsonではなく、内部的な表現形式なので、swcutil verify のinputに指定すると、フォーマットエラーになる。以下のCDNから取得したjsonをダウンロードして指定。

{
    applinks =     {
        apps =         (
        );
        details =         (
                        {
                appID = "999999.com.example";
                paths =                 (
                    "*"
                );
            },

inushimainushima

AppleのCDNにキャッシュされているか確認
https://qiita.com/toya108/items/73e4c683c78c9a4aa3d8

CURL https://app-site-association.cdn-apple.com/a/v1/{確認したいdomain}

キャッシュされたことを確認後、アプリ再インストールにより反映。

アプリがインストールされると、デバイスはただちにCDNからファイルをダウンロードします。

メモ帳などにURLを貼り付け、右クリックで「対象アプリで開く」が表示されればOK。