9

Firebase Dynamic-Links の動作は Android と iOS で異なりますか? iOS の別のターゲットの同じプロジェクトに Firebase Dynamic-Links を実装するにはどうすればよいですか?

Android では、Firebase Dynamic-Links はさまざまなフレーバーに対して適切に機能しますが、iOS では、Firebase Dynamic-Links はさまざまなターゲットに対して機能しません。

iOS の場合、異なるターゲットを持つ同じプロジェクトの Firebase を使用した Firebase Dynamic-Links に何を実装する必要がありますか?

Android と iOS での Firebase Dynamic-Links の動作の違いの実際の理由は何ですか? 異なるターゲットに対して Firebase Dynamic-Links を実装するには、同じアプリケーションに対して別のプロジェクトを作成する必要がありますか?

4

4 に答える 4

9

TLDR

Firebase Dynamic Links は、同じ Firebase プロジェクトに含まれる複数の iOS アプリ/ターゲットに同じ URL プレフィックスを使用することをサポートしていません。ただし、複数の回避策があります。


解決策 1: 複数の (サブ) ドメインを使用する

各 iOS アプリが動的リンクに独自の (サブ) ドメインを使用している場合は機能します。たとえば、pets.page.linkすべてのターゲットにのみ使用するのではなくcats.page.link、最初のアプリ ターゲットとdogs.page.link2 番目のアプリ ターゲットに使用します。これに対する重要な要件は、各ターゲットAssociated Domains Entitlementにリッスンする必要がある (サブ) ドメインのみが含まれていることです。

個人的には、私はこのソリューションを使用していますが、うまく機能しています。

解決策 2: カスタム ドメインを使用する

すべてのターゲットに同じドメインを使用することを主張する場合は、カスタム ドメインと追加の作業を使用することでこれを解決できるはずです。

Firebase によってネイティブに提供される URL プレフィックス ( など) を使用するのではなく、公式ドキュメントに従ってカスタム ドメインのように設定します。my-own-fancy-pet-app.compets.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: これはかなり古い質問であることは承知しており、質問の時点では状況が少し異なっていた可能性があります。しかし、それは今日でも問題です。

于 2020-04-14T13:20:17.253 に答える
0

ディープ リンクの場合は、アプリケーションのバンドル識別子を使用します。他のターゲットには異なる識別子があります。Info.plist で UIApplicationShortcutItems を使用し、それぞれの plist ファイルにディープ リンクのシャツ カットのエントリを追加します。

于 2017-01-11T05:07:58.647 に答える