首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS中,Firebase动态链接不适用于同一项目中的不同目标

在iOS中,Firebase动态链接不适用于同一项目中的不同目标
EN

Stack Overflow用户
提问于 2017-01-11 12:45:09
回答 4查看 2.9K关注 0票数 9

Android和iOS的Firebase动态链接的行为是不是不同?如何在iOS中为不同的目标实现同一项目的Firebase动态链接?

在安卓系统中,火库动态链接可以在不同的版本中正常工作,但在iOS中,火库动态链接不能用于不同的目标。

对于iOS,对于不同目标的同一项目,我必须为Firebase动态链接实现什么?

Android和iOS的Firebase动态链接行为不同的实际原因是什么?要为不同的目标实现Firebase动态链接,我是否必须为同一应用程序创建一个单独的项目?

EN

回答 4

Stack Overflow用户

发布于 2020-04-14 21:20:17

TLDR

Firebase动态链接不支持对同一Firebase项目中包含的多个iOS应用程序/目标使用相同的URL前缀。不过,有多种解决方法:

解决方案1:使用多个(子)域

如果每个iOS应用程序使用自己的(子)动态链接域名,它就可以工作。例如,不是只对所有目标使用pets.page.link,而是对第一个应用程序目标使用cats.page.link,对第二个应用程序目标使用dogs.page.link。这样做的关键要求是,目标的每个Associated Domains Entitlement只包含它应该侦听的(子)域。

就我个人而言,我正在使用这个解决方案,它工作得很好。

解决方案2:使用自定义域

如果您坚持对所有目标使用相同的域,您应该能够通过使用自定义域以及一些额外的工作来解决这个问题。

遵循the official documentation设置自定义域,如my-own-fancy-pet-app.com,而不是使用Firebase原生提供的任何网址前缀(如pets.page.link)。

创建firebase.json文件时,请不要使用建议的"appAssociation": "AUTO",选项,而应将其设置为NONE。这将防止Firebase自动创建有问题的apple-app-site-association文件(以及assetlinks.json)。使用Firebase托管来提供手动创建的版本。然后,您可以使用apple-app-site-association根据需要对其进行配置,即只将特定路径重定向到每个目标,而不是将所有路径都匹配到所有目标。

免责声明:我还没有测试过这种方法,因为在我的情况下,它不值得额外的工作。

解决方案3:使用多个Firebase项目

当然,您可以简单地为每个目标创建一个新的Firebase项目。您不能在多个项目中使用相同的(子)域,因此您被迫隐式地实现解决方案1。

背景

为什么它可以在安卓系统上运行,而不能在iOS上运行?

在Android上,所需的assetlinks.json文件映射完整的域名,包括指向Android应用程序(或风格)列表的所有路径。特定应用程序是否支持特定链接,由您通过在Android Manifest文件中本地路由所需路径来确定。

在iOS上,情况正好相反:所需的apple-app-site-association文件确定哪些路径与哪些应用程序相匹配。不幸的是,在使用Firebase动态链接时,您并不负责此文件,而Firebase只是将URL的所有路径与Firebase项目中包含的所有应用程序相匹配。在本地,您只能配置iOS应用程序的Associated Domains Entitlement。但是,后者只处理包括所有路径在内的完整域。

Firebase动态链接限制

不幸的是,官方文档中的任何地方都没有提到这个限制。然而,它已经被确认,例如herehere。正如第一个链接中所述,他们曾经计划添加此功能,但看起来仍然没有。我将联系支持人员以请求更新,并要求他们至少在文档中添加适当的提示。

PS:我知道这是一个相当古老的问题,在提问的时候,事情可能会有一点不同。然而,这在今天仍然是一个问题。

票数 8
EN

Stack Overflow用户

发布于 2018-09-12 17:03:43

@VishalPatoliyaツ我向Firebase开发人员询问了这个问题,他们说这个功能不在他们的待办事项列表中),并建议向支持人员提出请求,并论证为什么需要这种可能性。也许它会在某些时候被实现。

...though通用链接有多个应用程序支持。在这里你可以了解它是如何工作的:Supporting same domain on two different apps supporting universal links..?

票数 1
EN

Stack Overflow用户

发布于 2017-01-11 13:07:59

对于深度链接,您将使用应用程序的捆绑包标识符。你的其他目标会有不同的标识符。在Info.plist中使用UIApplicationShortcutItems,并在相应的plist文件中为您的深层链接衬衫裁剪添加条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41582867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档