繁体   English   中英

Firebase 动态链接总是打开应用商店

[英]Firebase dynamic links always opens app store

我一直试图让动态链接工作一整天,但没有成功。

我使用 firebase web 和谷歌提供的链接创建了一个动态链接。 我已经按照说明添加了相关域(应用链接: https://myapp.page.link/sZZL ),并且还设置了 firebase 托管。

在 firebase 上,我检查了团队 ID 和应用商店 ID(它没有发布到应用商店,但上传到苹果开发者帐户,因此有一个 ID)是正确的。

url 类型已正确设置,并设置了 bundle id。

如果我在 chrome 中打开链接,它会很好地重定向到应用程序。

我试过发送带有链接的 email 并将其添加到笔记中并从那里打开。 全部打开应用预览页面,然后重定向到应用商店。

你的应用程序还没有出现在应用程序商店中,因为它正在开发中——这会影响它吗?

我只是希望它重定向到应用程序(在有问题的手机上)而不是应用程序商店

要让您的动态链接在 iOS 上正常工作,您需要设置:

  1. 关联的域 此属性在自定义权利文件中设置,看起来像

<key>com.apple.developer.associated-domains</key>
<array>
    <string>applinks:myapp.page.link</string>
</array>
  1. Url 类型在 info.plist 中添加 firebase 默认使用的 URL 类型

<key>CFBundleURLTypes</key>
<array>
    .... Some others url schemes
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>Bundle ID</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>your.bundle.id</string>
        </array>
    </dict>
    ....
</array>

此外,您应该添加 Team ID(必需)和 App Store ID(如果您的应用未发布,您可以使用任何其他应用的 App Store ID 作为临时解决方案,但也是必需的)

有关更多信息,请参阅firecast

为了处理应用程序中的链接,请使用

请检查关联域中的链接设置。 它不应包含 https 或 www。

例如:

它应该是这样的: “applinks:appname.page.link”

但它不应类似于:“applinks:https://appname.page.link”或“applinks:www.appname.page.link”

我遇到了同样的问题,我的应用程序总是进入 App Store 页面。 该应用程序已经上线。 我遵循了有关关联域等的完整说明,所有设置都是正确的。

我的问题是 Firebase 要求提供Team ID & App ID Team IDapple-app-site-association使用,因此您会得到如下内容:

{"applinks":{"apps":[],"details":[{"appID":"TEAMID.bundleID","paths":["NOT /_/*","/*"]}]}}

我在开发人员中心(位于证书和配置文件)的应用程序标识符中注意到,当您在右上角按下您正在使用的标识符时,会显示一个App ID Prefix 对于大多数(较新的)应用程序,它们与Team ID相同,但有时会有所不同。

不同的时候,Firebase 在Team ID字段你应该输入App ID Prefix!

一段时间后(我花了 15 分钟左右) apple-app-site-association将被更改并显示新的前缀。 一段时间后,我的 Firebase 动态链接再次开始正常工作。

希望这可以帮助一些有同样问题的人并节省他们一些时间。

我使用@Mark Iliev's answer 的帮助解决了它,但我的情况有点不同。

最初,我在Associated Domains指定了一个 Firebase 域,例如applinks:myproject.page.link

然后我配置了要使用的自定义域,当我更新关联域部分时,XCode 告诉我将创建一个新的权利文件,因此它使用更新的自定义域向项目添加了一个文件MyProjectRelease.entitlements

但是,原始的MyProject.entitlements文件中仍然存在旧的 Firebase 域名。 将新的MyProject.entitlements的域更新为我的自定义域解决了这个问题。

    <dict>
       <key>aps-environment</key>
       <string>development</string>
       <key>com.apple.developer.associated-domains</key>
       <array>
           <string>applinks:mycustomdomain.com</string>
       </array>
    </dict>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM