FDLでアプリが開かない時に確認すべき4箇所

# はじめに

Firebase Dynamic LinksをiOSアプリで実装するにあたり、デバッグでつまづいてしまって想定以上の時間を要してしまいました。

具体的にはリンクからAppleStoreが開くばかりでどれだけ設定を確認をしても間違いがなかったのです。

しかし、結果的にそもそもデバッグ方法を間違えていることに気がつきました。

実装をする中でヒントになった内容を4箇所記述しているので参考にしてみてください。

なお、FirebaseのYouTubeチャンネル内のチュートリアル動画[Getting started with Dynamic Links on iOS - Pt.1 (Firecasts)](https://www.youtube.com/watch?v=KLBjAg6HvG0)の内容を引用します。ソースを確認したい方はこちら([7:14~](https://youtu.be/KLBjAg6HvG0?t=434))をご覧ください。

# サーチバーから開いてはいけない

デバッグ時、当該のURL(例: `https://mandala.mtfum.work`)をSafariのコピー＆ペースとして開いていました。

すると下記のようなスクショ画面が表示されます(`erf=1`をリンク生成時につけると表示されなくなるらしい: [「アプリで開く」を実現する、Firebase Dynamic Linksの実装と運用Tips](https://logmi.jp/tech/articles/320720)


<img width="375" alt="IMG_F87A00741268-1.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/d4540e93-e818-074f-8222-d2c9299056a5.jpeg">


が、そもそもコピペをしてデバッグすべきではなく、NotesやiMessageなどのアプリ内からクリックして開くべきという教訓を得ました。

では、それでも正しくURLが開かない場合は何を確認するべきなのか？

1. URLを確認する
2. アプリIDを再確認する
3. ユニバーサルリンク設定の確認
4. Apple App Siteの再確認

上記4つがあるので順に見ていきましょう

# 1. URLを確認する

Associated Domainsが設定されており、`URL Schemes`がBundleID(または、独自で設定したスキーム)に合致しているのか。

Xcode11からは`Signing & Capabilities`に位置が変更されたので注意が必要ですね。


<img width="949" alt="Screen Shot 2019-11-02 at 15.55.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/ae1859af-5aea-ba91-30e5-8b2a9a277c9f.png">

# 2. アプリIDを再確認する


- FirebaseコンソールのApp Store IDとAppStore上のApple ID,
- FirebaseコンソールのTeamIDとApple Developer Membership Information TeamID

のそれぞれが正しく反映されているかを確認します。

|            | Firebase Console   |    Apple    |
|:----------:|:------------------:|:------------------:|
|   Team ID        |<img width="144" alt="Screen Shot 2019-11-02 at 16.08.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/1558db99-7be8-4a3a-9fca-6f176953bb06.png">|<img width="435" alt="Apple Developer Membership InformationTeamID" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/f8672c9f-c4b3-2271-2813-89e23d109366.png">|
|    Apple ID  |<img width="161" alt="Screen Shot 2019-11-02 at 16.07.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/db9fd36b-6091-1b5a-a8dd-4bdf9ec31000.png">|<img width="303" alt="Screen Shot 2019-11-02 at 16.06.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/9bb5aba7-535a-781a-61a2-e317f2ade699.png">|


# 3. ユニバーサルリンク設定の確認

偶然、ドメインのユニバーサルリンク設定がOFFになっている場合があります。

解決方法としては、なんらかのアプリ内で当該のリンクを長押しします。

するとプレビューが表示されます。

<img width="375" alt="IMG_4635.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69911/59169186-1c92-81e9-3a79-3ade845bb5c7.png">

各種アクションを選択できるので、`Open in "Mandala"`を選択することで修正できます。
この選択により再びリンクが有効になります。

ところが、**`Open in Safari`を選択するとユニバーサルリンクを無効にする** んだそうです。
いらねぇ、、


# 4. Apple App Siteの再確認

関連ファイルが正しく設置されているのかを再確認します。

`https://hoge.fuga/apple-app-site-association` で自分のサイトを覗いてみましょう。

例: [https://mandala.mtfum.work/apple-app-site-association](https://mandala.mtfum.work/apple-app-site-association)


# おわりに

筆者は`3.  ユニバーサルリンク設定の確認` でユニバーサルリンク設定を有効にすることで問題を解決することができました。
カスタムドメインのバグだ〜！などと騒ぎ立て、もう切腹しようかなと思うくらいに切羽詰まりましたが、たまたま見たYouTube動画に救われるとは夢にも思いませんでした。。
google検索だけでは絶対に見つからなかったです。
皆さんの時間が無駄にならないようにここにドキュメントに記述しました。

FirebaseやGoogleの技術チュートリアル動画はわかりやすく、コンテンツも豊富なのでまずは動画を見てから始めてみてもいいかもしれませんね。。

お読みいただきありがとうございました。
お役に立てば幸いです。
本件においてはドキュメントに記述するようFirebaseサポートに連絡済みです。