Firebase动态链接无法打开iOS应用

时间:2016-06-09 11:14:47

标签: ios firebase firebase-dynamic-links

我开发了&在我的设备上本地安装了iOS应用程序。

并将info.plist中的自定义方案设置为browser.executeScript("document.querySelector('.ag-body-viewport').scrollTo(0, 0);");

将相关域设置为weel:mydlink

在firebase上创建动态链接:

applinks:<myapp>.app.goo.gl

当我打开或点击动态链接时,它会在&#34; App Store&#34;中打开应用页面。应用程序,但不会打开应用程序本身虽然已安装。

我在这里缺少什么?

19 个答案:

答案 0 :(得分:11)

如果您使用的是iOS 9,则会使用通用链接。通用链接在很多情况下都不起作用,例如:

  • 如果您使用模拟器
  • 如果您尝试直接在设备上的safari中打开链接(在浏览器的地址栏中输入)

我花了很多时间尝试这个并且永远无法以可靠的方式在模拟器上工作。我最终做的是通过电子邮件将链接发送给我并从收件箱中打开它。然后它每次都有效!

答案 1 :(得分:7)

我很抱歉迟到的回复 - 我希望您的问题已经解决,这对其他可能遇到同样问题的人有帮助。

iOS 9+实际上可能存在一个或多个问题; Dynamic Links依靠Apple的Universal Links在iOS 9+上打开应用程序,这些建议旨在解决Universal Links和Firebase的问题,并直接与SDK无关。

  1. 通过https:// app_id .app.goo.gl / apple-app-site-association验证关联文件是否正确 - 它应该与https://maps.app.goo.gl/apple-app-site-association类似,但与&#34;细节中只有一个元素。&#34;
  2. 正如另一个答案所指出的,请验证您的团队ID是否已在Firebase控制台中正确设置。
  3. 如果您长按该链接,然后点击&#34;在Safari中打开&#34;或者您点击了&#34; goo.gl&gt;&#34;通过通用链接打开应用程序后,应用程序状态栏上的按钮,然后iOS默认在Safari中打开通用链接。这可以通过下拉在Safari中打开的分页并单击&#34;在应用程序中打开&#34; (或类似的)在智能横幅上。
  4. &#34; ibi&#34;在iOS 9+上的安装后点击中打开应用程序不参与参数,但是在&#34; ius&#34; param未设置。

    关于iOS 8,您可以尝试运行应用程序,然后在安装应用程序后单击链接吗?在iOS 9之前的版本中,您可以通过将链接复制/粘贴到safari中进行测试。

    https://firebase.google.com/docs/dynamic-links/ios

答案 2 :(得分:4)

我在使用 iOS 14 时遇到问题,在调试模式下在设备上运行。 Link 总是将我重定向到 AppStore 应用程序而不是我的应用程序。 解决方案是在 iPhone Settings>Developer>Associated Domains Development 上启用“Associated Domains Development” (在这里找到: https://stackoverflow.com/a/63939770/6689321 )。 Settings Developer

答案 3 :(得分:3)

我遇到了同样的问题。有趣的是,如果您在Chrome中打开动态链接,应用会直接成功启动。但在Safari中,尽管安装了应用程序,它仍会尝试打开AppStore。我不知道为什么Safari在这种情况下不起作用。

答案 4 :(得分:3)

有时,我们在关联域权利中犯了一个错误。不得有空格

applinks:mydomain.page.link

答案 5 :(得分:3)

以防万一还有人遇到这个问题,请注意以下内容

  1. 动态链接现已在模拟器上打开,请随意复制链接并粘贴到模拟器中的野生动物园中。
  2. Chrome和safari打开动态链接的方式有所不同,safari仅使用通用链接,而chrome使用url方案和通用链接来打开动态链接。最终,您应该尝试通过应用程序中的通用链接来打开动态链接。

  3. 如果您的动态链接路由到App Store而不是打开您的应用程序。您的通用链接存在问题。您可以暂时使用chrome测试。

    要通过通用链接设置打开动态链接,请检查以下内容

    • 确保正确设置您的团队ID在Firebase控制台中,从https://developer.apple.com

    • 中的会员详细信息中获取您的团队ID。
    • 确保您的域如下所示在关联的域中列出,域enter image description here

    • 之间没有空格
    • 确保在您的Apple开发人员帐户enter image description here

    • 中已打开关联域
    • 如果您使用的是自定义域,请确保将其添加到info.plist中,如下所示。enter image description here

答案 6 :(得分:2)

由于Firebase在设置过程中的假设存在问题,Firebase动态链接对我们(在iOS9上使用通用链接)不起作用。以下是我们在应用上解决问题的方法:

Firebase在将您的iOS应用添加到Firebase控制台项目设置时会询问您的“团队ID”,并假设您的唯一应用ID将采用TeamID.com.foo.bar格式

但是,在我们的情况下,这不是我们唯一的应用ID。当我查看我们的配置文件时(在developer.apple.com上我找到了我们的配置文件并单击了“编辑”),我看到我们唯一的应用程序ID实际上是SomethingElse.com.foo.bar

我必须进入Firebase控制台,并在要求提供团队ID的位置输入“SomethingElse”,即使这不是我们的团队ID。完成更改后,Firebase动态链接开始正常运行。

Firebase似乎假设您的唯一应用ID始终以您的团队ID开头,显然并非总是如此。

请注意,更改团队ID可能需要很长时间才能生效。您可以通过检查app_id(https://app_id.app.goo.gl/apple-app-site-association)的相应链接来查看更改已发生。

答案 7 :(得分:2)

遇到同样的问题。

对我来说,解决方案是使用

  

标识符->应用ID->'my.app.ID'->前缀

您可以在https://developer.apple.com/account/ios/identifier/bundle

上找到它

代替我使用的'DevelopmentTeam'中的.pbxproj号,并将其添加到Firebase控制台中的iOS应用的Team ID中。

别忘了下载并向项目添加新的.plist。

答案 8 :(得分:1)

在safari中打开链接时,会显示&#34;打开(项目名称)&#34;按钮。如果按下此按钮2-3秒,它会要求首次打开不同的应用程序。它还会显示您的应用程序名称。如果您选择了应用,则会打开您的应用。如果您再次打开此链接并在Safari中按下按钮,它总是正常工作。

这解决了我的问题。

答案 9 :(得分:1)

大家好,我有一个很棒的新人。

我总是听到它不可能在模拟器上测试动态链接。

但是我们发现了这一点,现在我们可以在模拟器上测试firebase动态链接

https://stackoverflow.com/a/56385506/6273003

答案 10 :(得分:0)

如果你确定你在 xcode 中的所有动态链接配置​​都是正确的,链接是好的,但它仍然打开 Appstore,你可以试试这个技巧:

  1. 复制链接并将其粘贴到notes 应用
  2. 长按注释中的链接可查看上下文菜单
  3. 如果您看到“在 YourAppName 中打开”按钮 - 请尝试按下它。

答案 11 :(得分:0)

确保您在firebase控制台中为您的应用设置了团队ID。 (然后您需要下载并导入.plist文件)。

这解决了我的问题。

答案 12 :(得分:0)

我遇到了问题,AASA 文件在不同的位置不同

[domain]/.well-known/apple-app-site-association
[domain]/apple-app-site-association

来自分支的验证器总是检查非已知路径上的文件。这很令人困惑,因为它总是说一切都很好,即使不是。

对于 Firebase,请检查您的主机并在公共目录中搜索 .well-known 文件夹。就我而言,我可以删除它,运行 firebase deploy --only hosting 并让 Firebase 为我生成所有 AASA 文件。

https://branch.io/resources/aasa-validator/

答案 13 :(得分:0)

我犯了一个错误,那就是没有为DEBUG设置关联域,因此请确保您同时设置了 Associated Domains 所有DEBUG和RELEASE

enter image description here

答案 14 :(得分:0)

我在使用最新的flutter sdk和firebase动态链接插件时遇到了同样的问题。

尝试了所有解决方案,唯一的解决方法是将 com.apple.developer.associated-domains 密钥手动插入到 ios / Runner / Running.entitlements 文件

    (context.resources.displayMetric.width / 3).toInt()

答案 15 :(得分:0)

我有相同的大小写,并且在Deeplink网址上定义了ios应用后修复了该问题;

Dynamic Links -> choose your link -> Edit

确保您已定义ios应用;

enter image description here

答案 16 :(得分:0)

我们有类似的问题。在我们的案例中,问题在于生成带有链接的电子邮件的软件生成了一个新链接,该链接具有304重定向到我们的深层链接。这不适用于Safari(但适用于Chrome)。

当您单击电子邮件中的链接时,检查深层链接实际上是第一个打开的链接。

答案 17 :(得分:0)

如果上述解决方法都不适合您,请检查您是否在关联的域中添加了活动继续。

Followin image shows the exact place where you have to add that(if you havn't done that already)

答案 18 :(得分:0)

在集成Firebase动态链接后,示例链接立即开始在iOS 8设备上运行。对于iOS 9设备,使用通用链接机制,如其他答案所述。这意味着Apple需要更新用于验证深层链接双重身份验证的权利数据。根据Apple的App Search API Validation Tool,这可能需要48小时。

还有更多通用链接疑难解答提示here