iOS 9 中的应用链接无效

applinks in iOS 9 not working

我没有得到 applinks: 在 iOS 不工作,每当我在我的 iOS 9 上打开 link 之类的 https://www.example.com/something设备,它会在 Safari 中打开。

我是 运行 通过调试配置文件的应用程序,在我的服务器上有一个名为 apple-app-site-association.

的文件

我发现了两种不同的格式:

{
  "applinks": {
    "apps": [],
    "details": {
      "AB1CDEFGHI.com.mydomain.myapp": {
        "paths": ["*"]
      }
    }
  }
}

以及

{
    "applinks": {
        "apps": [],
        "details": [
        {
            "appID": "AB1CDEFGHI.com.mydomain.myapp",
            "paths": [ "*" ]
        }
        ]
    }
}

所以这是我不确定使用哪个的第一件事。

第二个是'AB1CDEFGHI'部分;应用程序的"Team-ID"?它是包含在 appid 中的东西还是开发者帐户的团队 ID?

所以这个是完全黑掉了吗?

还是这里的这个(又是完全黑掉的部分)?

编辑

我刚刚尝试在另一个应用程序中进行设置,第一次运行没有任何问题 - 真的不知道有什么区别。

我可能遗漏了什么?

编辑 2

我刚刚看到两个应用程序的区别(一个可以工作,一个不能):工作的应用程序在开发者门户中有一个 AppId,其前缀与 TeamID 匹配,不工作的应用程序有不同于 TeamID 的前缀。我已经尝试使用 apple-association-file 中 AppID 的前缀,但它也不起作用...

我今天花了很多时间试图解决这个问题。最终归结为我的 SSL 证书的设置。您应该检查的事项:

1) 在 XCode 的设备控制台中(Window - 设备,select 您的 iphone,然后单击左下角的三角形打开对话框的主视图),你看到 "Rejecting URL for auth method 'NSURLAuthenticationMethodServerTrust': kAuthenticationError" 了吗?如果是这样,这意味着您的 SSL 证书很可能没有正确设置。

使用 https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsp 确保您的网站没有 SSL 证书错误。

此外,如果您在 infoplist 中绕过 TLS 1.2,您可能还必须删除这些密钥。

2) 确保在 developer.apple.com 为正确的 App ID

打开关联域

3) 确保将适当的应用程序链接添加到 XCode 的项目目标中的关联域。还要确保权利文件已添加到您的项目中。我在某处读到该文件不是为某人生成的,这也可能是您的问题。

我发现了我这边的错误:我必须在 apple-app-site-association 文件中使用 App IDs 前缀,这与此特定应用程序的 TeamID 不同。

我没有找到说明 TeamID 以外内容的文档,这就是我花了这么长时间的原因。只有在我比较了两个应用程序之后,我才发现唯一的区别,现在它可以工作了。

device/native 应用向 https:///apple-app-site-association 端点发出请求的行为是不可预测的。但我确实注意到权利文件中的 adding/removing "applinks:" 似乎确实触发了请求。通过 CharlesProxy 代理您的设备,您可以看到正在发出的请求(尽管只是域,而不是完整的 SSL 请求,因为证书固定)但总比没有好。