杏z学習帳

Swift、Unityなどを中心に節操なく手を出してますまる

HostingでUniversal Links対応する(2019/02/07)

[Firebase]HostingでUniversal Links対応する

ざっくりまとめ。

です。

環境

やりたいこと

Firebase Hosting で公開しているサイトで Universal Links の対応をしたい!

やっていき!

とはいっても、基本的には他でやるものと手順は変わりません(当たり前ですが)

です。

ちょっと迷うのが apple-app-site-association の設置でしょうか🤔
設置自体は何でもないのですが、content-typeapplication/json に設定してあげる必要があります。
Nginx とかであれば server の記述でもしてあげりゃいいのでしょうけど。。

firebase.json で対応します

Firebase Hosting をつかっているということは、その設定ファイルで firebase.json っていうのがいるはずなので、
そちらで記述することで対応が可能になります

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/",
        "destination": "/index.html"
      }
    ],
    "headers": [
      {
        "source": "/.well-known/apple-app-site-association",
        "headers": [{"key": "Content-Type", "value": "application/json"}]
      }
    ]
  }
}

こういう感じで headers に追加してあげれば ok です!
これでシームレスにアプリとリンクできますね!!💪

補足

application(_:continue:restorationHandler:) でハンドリングして URL をみて振る舞いをかえることができるのですが、
ここで return false と false を返してもアプリ自体は起動するので、
false 返すとアプリ起動しないだろうな〜とかって僕みたいに思い込んでいた人は気をつけてください(笑)
(ぶっちゃけ UniversalLinks で起動された場合に返すものがtrueとfalseで何か挙動かわるのかわからん)