はじめに
Firebase Dynamic LinksをiOSアプリで実装するにあたり、デバッグでつまづいてしまって想定以上の時間を要してしまいました。
具体的にはリンクからAppleStoreが開くばかりでどれだけ設定を確認をしても間違いがなかったのです。
しかし、結果的にそもそもデバッグ方法を間違えていることに気がつきました。
実装をする中でヒントになった内容を4箇所記述しているので参考にしてみてください。
なお、FirebaseのYouTubeチャンネル内のチュートリアル動画Getting started with Dynamic Links on iOS - Pt.1 (Firecasts)の内容を引用します。ソースを確認したい方はこちら(7:14~)をご覧ください。
サーチバーから開いてはいけない
デバッグ時、当該のURL(例: https://mandala.mtfum.work
)をSafariのコピー&ペースとして開いていました。
すると下記のようなスクショ画面が表示されます(erf=1
をリンク生成時につけると表示されなくなるらしい: 「アプリで開く」を実現する、Firebase Dynamic Linksの実装と運用Tips
が、そもそもコピペをしてデバッグすべきではなく、NotesやiMessageなどのアプリ内からクリックして開くべきという教訓を得ました。
では、それでも正しくURLが開かない場合は何を確認するべきなのか?
- URLを確認する
- アプリIDを再確認する
- ユニバーサルリンク設定の確認
- Apple App Siteの再確認
上記4つがあるので順に見ていきましょう
1. URLを確認する
Associated Domainsが設定されており、URL Schemes
がBundleID(または、独自で設定したスキーム)に合致しているのか。
Xcode11からはSigning & Capabilities
に位置が変更されたので注意が必要ですね。
2. アプリIDを再確認する
- FirebaseコンソールのApp Store IDとAppStore上のApple ID,
- FirebaseコンソールのTeamIDとApple Developer Membership Information TeamID
のそれぞれが正しく反映されているかを確認します。
Firebase Console | Apple | |
---|---|---|
Team ID | ||
Apple ID |
3. ユニバーサルリンク設定の確認
偶然、ドメインのユニバーサルリンク設定がOFFになっている場合があります。
解決方法としては、なんらかのアプリ内で当該のリンクを長押しします。
するとプレビューが表示されます。
各種アクションを選択できるので、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
おわりに
筆者は3. ユニバーサルリンク設定の確認
でユニバーサルリンク設定を有効にすることで問題を解決することができました。
カスタムドメインのバグだ〜!などと騒ぎ立て、もう切腹しようかなと思うくらいに切羽詰まりましたが、たまたま見たYouTube動画に救われるとは夢にも思いませんでした。。
google検索だけでは絶対に見つからなかったです。
皆さんの時間が無駄にならないようにここにドキュメントに記述しました。
FirebaseやGoogleの技術チュートリアル動画はわかりやすく、コンテンツも豊富なのでまずは動画を見てから始めてみてもいいかもしれませんね。。
お読みいただきありがとうございました。
お役に立てば幸いです。
本件においてはドキュメントに記述するようFirebaseサポートに連絡済みです。