Firebase动态链接始终打开应用程序商店

nvbavucw  于 2023-02-25  发布在  其他
关注(0)|答案(5)|浏览(153)

我一直试图让动态链接工作一整天都没有成功。
我已经创建了一个动态链接使用firebase web和谷歌提供的链接。我已经添加了相关的域指示(applinks:https://myapp.page.link/sZZL),并且还设置了firebase主机。
在Firebase上,我已经检查了团队ID和应用商店ID(它没有发布到应用商店,但在上传到苹果开发者帐户,所以有一个ID)是正确的。
url类型设置正确,并设置了bundle id。
如果我在chrome中打开链接,它会重定向到应用程序就好了。
我试过发送一封带有链接的邮件,并将其添加到笔记中,然后从那里打开,所有这些都会打开应用程序预览页面,然后重定向到应用程序商店。
这款应用还没有在应用商店上市,因为它还在开发中--这会对它产生影响吗?。
我只是希望它重定向到应用程序(这是在手机上的问题),而不是应用程序商店

fdbelqdn

fdbelqdn1#

要使动态链接在iOS上正常工作,您需要设置:
1.关联域此属性在自定义权利文件中设置,如下所示

<key>com.apple.developer.associated-domains</key>
<array>
    <string>applinks:myapp.page.link</string>
</array>

1.在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>

此外,您还应该添加团队ID(必填)和应用商店ID(如果您的应用未发布,您可以使用任何其他应用的应用商店ID作为临时解决方案,但也是必填项)
有关详细信息,请参见firecast
使用this处理应用程序中的链接

o8x7eapl

o8x7eapl2#

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

例如:
它应该是这样的:* *"应用链接:www.example.com"appname.page.link"
但它不应该像这样: "应用链接:www.example.com"或"应用链接:www.example.com"https://appname.page.link" or "applinks:www.appname.page.link"

nafvub8i

nafvub8i3#

我有同样的问题,我的应用程序总是去应用程序商店页面。应用程序已经在线。我按照完整的指示有关关联域等,所有设置都是正确的。
我的问题是Firebase要求Team IDApp IDTeam ID用在apple-app-site-association中,所以你会得到这样的结果:
{"applinks":{"apps":[],"details":[{"appID":"TEAMID.bundleID","paths":["NOT /_/*","/*"]}]}}
我注意到在开发者中心(证书和配置文件)的应用标识符中,当你点击右上角的标识符时,会显示一个App ID Prefix。对于大多数(较新的)应用,它将与Team ID相同,但有时会有所不同。

如果不同,则应在Firebase的Team ID字段中输入应用程序ID前缀!

过了一段时间(花了我15分钟左右),apple-app-site-association将被更改,新的前缀将显示。再次过了一段时间,我的Firebase动态链接开始工作得很好。
希望这能帮助一些有同样问题的人,为他们节省一些时间。

xtupzzrd

xtupzzrd4#

我已经尝试了许多事情,并发现该问题得到解决后,添加下面的代码在info.plist文件。

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLName</key>
            <string>BUNDLE_ID_HERE</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>test</string>
            </array>
        </dict>
    </array>

BUNDLE_ID_HERE替换为您的iOS应用程序捆绑包ID,您可以看到问题将得到解决,并在单击动态链接时开始进入应用程序。

2eafrhcq

2eafrhcq5#

我用@Mark Iliev的答案解决了这个问题,但我的情况有点不同。
最初,我在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>

相关问题