TLDR
Firebase Dynamic Links は、同じ Firebase プロジェクトに含まれる複数の iOS アプリ/ターゲットに同じ URL プレフィックスを使用することをサポートしていません。ただし、複数の回避策があります。
解決策 1: 複数の (サブ) ドメインを使用する
各 iOS アプリが動的リンクに独自の (サブ) ドメインを使用している場合は機能します。たとえば、pets.page.link
すべてのターゲットにのみ使用するのではなくcats.page.link
、最初のアプリ ターゲットとdogs.page.link
2 番目のアプリ ターゲットに使用します。これに対する重要な要件は、各ターゲットAssociated Domains Entitlement
にリッスンする必要がある (サブ) ドメインのみが含まれていることです。
個人的には、私はこのソリューションを使用していますが、うまく機能しています。
解決策 2: カスタム ドメインを使用する
すべてのターゲットに同じドメインを使用することを主張する場合は、カスタム ドメインと追加の作業を使用することでこれを解決できるはずです。
Firebase によってネイティブに提供される URL プレフィックス ( など) を使用するのではなく、公式ドキュメントに従ってカスタム ドメインのように設定します。my-own-fancy-pet-app.com
pets.page.link
firebase.json
ファイルを作成するときは、提案され"appAssociation": "AUTO",
たオプションを使用せず、 に設定してNONE
ください。apple-app-site-association
これにより、Firebase が問題のあるファイル (および)を自動的に作成するのを防ぎますassetlinks.json
。代わりに Firebase Hosting を使用して、手動で作成されたバージョンを提供してください。次に、 を使用apple-app-site-association
して必要に応じて構成できます。つまり、すべてのパスをすべてのターゲットに一致させるのではなく、特定のパスのみを各ターゲットにリダイレクトします。
免責事項:私の場合、余分な作業をする価値がなかったため、このアプローチはテストしていません。
解決策 3: 複数の Firebase プロジェクトを使用する
もちろん、ターゲットごとに新しい Firebase プロジェクトを簡単に作成できます。複数のプロジェクトで同じ (サブ) ドメインを使用することはできないため、ソリューション 1 を暗黙的に実装する必要があります。
バックグラウンド
Android では動作するのに、iOS では動作しないのはなぜですか?
Android では、必要なassetlinks.json
ファイルは、すべてのパスを含む完全なドメインを Android アプリ (またはフレーバー) のリストにマップします。特定のリンクが特定のアプリでサポートされているかどうかは、Android マニフェスト ファイルで目的のパスをローカルにルーティングすることによって決定されます。
iOS では逆です。必要なapple-app-site-association
ファイルによって、どのパスがどのアプリに一致するかが決まります。残念ながら、Firebase Dynamic Links を使用していて、Firebase が単に URL のすべてのパスを Firebase プロジェクトに含まれるすべてのアプリに一致させる場合、このファイルを担当するのはあなたではありません。Associated Domains Entitlement
ローカルでは、iOS アプリののみを構成できます。ただし、後者はすべてのパスを含む完全なドメインのみを処理します。
Firebase Dynamic Links の制限事項
残念ながら、この制限は公式ドキュメントのどこにも言及されていません。ただし、ここまたはここなどで確認されています。最初のリンクで述べたように、彼らはこの機能を追加することを計画していましたが、まだしていないようです. サポートに連絡して更新を依頼し、ドキュメントに少なくとも適切なヒントを追加するよう依頼します。
PS: これはかなり古い質問であることは承知しており、質問の時点では状況が少し異なっていた可能性があります。しかし、それは今日でも問題です。