Firebasedynamic链接无法打开应用程序iOS

我已经在我的设备上本地开发和安装了一个iOS应用程序。

并且已经将info.plist中的自定义scheme设置为mydlink

将关联的域设置为applinks:<myapp>.app.goo.gl

在Firebase上创builddynamic链接为:

 https://<myapp>.app.goo.gl/?link=http://<mysite.com>/&ibi=<app bundle id>&ius=mydlink&ifl=https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id%3D<app store id>%26mt%3D8&pt=<app store id> 

当我打开或点击dynamic链接时,它会打开“App Store”应用程序中的应用程序页面,而不是通过安装它自己打开应用程序。

我在这里错过了什么?

    如果你在iOS 9上,将使用通用链接。 通用链接在很多情况下不起作用,例如:

    • 如果你使用模拟器
    • 如果您尝试在设备上直接在Safari浏览器中打开链接(在浏览器中将其input到地址栏中)

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

    对于迟到的回复,我感到抱歉 – 我希望你的问题得到解决,这对其他可能遇到同样问题的人有帮助。

    对于iOS 9+,实际上可能有一个或多个问题; dynamic链接依靠苹果的通用链接在iOS 9+上打开应用程序,这些build议旨在解决通用链接和Firebase的问题,并与SDK直接无关。

    1. 通过https:// app_id .app.goo.gl / apple-app-site-associationvalidationassoc文件是否正确 – 它应该类似于https://maps.app.goo.gl/apple-app-site关联但在“细节”中只有一个元素&#x3002;
    2. 正如另一个答案所指出的那样,请确认您的团队ID已在Firebase控制台中正确设置。
    3. 如果您长时间按下链接,然后点击“在Safari中打开”,或者在应用程序通过通用链接打开后,单击了应用程序状态栏上的“goo.gl>”button,则iOS默认打开Safari中的通用链接。 这可以通过下拉在Safari中打开的页面并点击智能横幅上的“在应用程序中打开”(或类似的)来解决。

    参数“ibi”不涉及在iOS 9+上的安装后点击应用程序,但是在“ius”参数没有设置的情况下,在之前的版本中。

    关于iOS 8,你可以尝试运行应用程序,然后在应用程序安装后点击链接? 在iOS 9以前的版本中,您可以通过将链接复制/粘贴到Safari浏览器进行testing。

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

    由于Firebase在设置过程中出现了一些问题,因此Firebasedynamic链接对我们来说(在使用通用链接的iOS9上)不起作用。 以下是我们如何解决我们的应用程序的问题:

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

    但是,在我们的情况下,这不是我们独特的应用程序ID。 当我看着我们的configuration文件(在developer.apple.com上,我发现了我们的configuration文件,并点击“编辑”),我看到我们独特的应用程序ID实际上是SomethingElse.com.foo.bar

    我不得不进入Firebase控制台,并在要求Team ID的地方input“SomethingElse”,即使那不是我们的团队ID。 一旦我进行了更改,Firebasedynamic链接就开始正常工作。

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

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

    确保您在应用的Firebase控制台中设置了团队标识。 (您将需要下载并导入.plist文件)。

    这为我解决了这个问题。

    在集成Firebasedynamic链接之后,示例链接立即在iOS 8设备上开始工作。对于iOS 9设备,使用通用链接机制,正如其他答案所述。 这意味着苹果需要更新用于validation深度链接双重authentication的授权数据。 根据苹果的App Search APIvalidation工具 ,这可能需要48小时。

    这里有更多通用链接疑难解答提示。

    我遇到了同样的问题。 有趣的是,如果您在Chrome中打开dynamic链接,则应用程序将直接并成功启动。 但是在Safari中总是试图打开AppStore,虽然应用程序已安装。 我不知道为什么Safari在这种情况下不工作。