ios - 通用深度链接问题

标签 ios swift deep-linking

我已经完成了苹果开发人员文档中提供的有关通用深度链接的所有步骤,但它仍然不起作用。

我已经尝试过的一切。

1- 在我的 appId 上添加了关联域。(在developer.apple.com上)

2- 下载新的配置文件并使用它们。

3- 通过提供有效路径在 xcode 项目中启用深度链接。

4- 创建 apple-app-site-association 文件并添加详细信息,就像开发人员文档中提到的那样。

5- 将该文件托管到我的服务器

之后,正如开发人员文档中提到的,在设备上安装应用程序时,它将下载该文件,正在发生这种情况,我可以在我的服务器上看到日志(该文件的 200 状态代码)

但它仍然不起作用。

除了我在开发人员文档中注意到的所有内容之外,下面还提到了。 enter image description here

apple-app-site-association 可以创建为纯文本文件,但它应该application/json 作为 MIME 类型。这是我现在唯一感到困惑的事情。因为当我检查服务器上当前文件的 MIME 类型时,没有任何结果。

是这个问题吗?如果是的话我该如何设置文件的 MIME 类型?

如果没有,请告诉我我还缺少什么。

提前致谢。

最佳答案

我的直觉是还有其他因素在起作用。 application/json 只是意味着 Apple 会将此文件解释为 JSON 对象。以下是我的一些建议:

1) 确保您的 AASA 文件格式正确,并且 appID 与您项目的应用 ID 后跟 bundle ID 匹配,如我的示例。我只是从这种 AASA 格式开始,然后从那里开始。

{
    "applinks":
       {
           "apps":[],
           "details":[
                       {
                          "appID":"CXXXXXXXXD.com.deep.linked.Deep-Linked-Dogs",
                          "paths":["NOT /e/*","*","/"]
                        }
                     ]
       }
}

2) 确保您的权利文件包含在您的项目中。这是下载 AASA 所必需的。确保您的域名正确。

entitlements file

3) 检查您的手机是否运行 iOS 11.2。此版本的 iOS 有时在实际下载 AASA 文件时遇到问题。要解决此问题,您应该删除该应用程序,重新启动手机,然后重新安装。我建议使用 Charles Proxy 检查手机是否确实在下载 AASA 文件。

4) 检查您是否在应用程序中禁用了通用链接(可能不是您的问题,但请检查)。您可以通过将链接复制到 Notes 应用程序中,然后长按它以提示操作表来完成此操作。如果您看到“在应用程序名称中打开”,则可以选择它来打开该应用程序的通用链接。如果您没有看到该信息,则 AASA 文件未下载或未正确配置。

5) 使用Branch's iOS SDK用于深度链接。它将为您节省很多时间的调试时间。他们为您处理 AASA 文件,并提供延迟深度链接解决方案和其他边缘情况。

关于ios - 通用深度链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925793/

相关文章:

ios - 在 Xcode 8.2.1 中找不到“Cordova/CDV.h”文件

ios - 如何在iOS中获取 map 中某个点的方向?

ios - iPhone Plus 和 X 中 Storyboard和模拟器的 View 不同

ios - 如何在 Swift 中旋转图像?

android - Firebase 动态链接未在 Android 中将我的应用程序作为单独的应用程序打开

objective-c - 从电话号码中获取区号

Swift coredata 按关系属性排序?

ios - 仅将一些触摸事件从一个 View 传递到另一个 View

ios - 使用 Facebook 的移动主机 API 时,有没有办法通过 FBSDKAppInviteContent 传递自定义数据?

java - 如何使用 putExtra 打开另一个应用程序并为其发送一些数据?