【问题标题】:applinks in iOS 9 not workingiOS 9 中的应用链接不起作用
【发布时间】:2015-11-16 08:50:48
【问题描述】:

我没有收到应用链接:在 iOS 中无法正常工作,每当我在 iOS 9 设备上打开像 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'部分;应用程序的“团队 ID”?是 appid 中包含的内容还是开发者帐户的团队 ID?

所以是这个完全黑了吗?

还是这里的这个(同样,部分完全变黑了)?

编辑

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

  • AppId 包括权利
  • apple-app-site-association 是一样的
  • 在应用中添加了关联域
  • - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler 已实施

我可能会错过什么?

编辑 2

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

【问题讨论】:

  • 您是否发现了这两个应用程序之间的差异,从而使第二个应用程序能够工作?
  • 不,我完全不知道 :(
  • 您能否验证捆绑 ID [com.mydomain.myapp] 是否存在于您的应用的 ipa 文件中,但无法正常工作? ipa 应该有类似这样的内容: BUNDLE ID: com.mydomain.myapp SCHEMES:

标签: ios9 deep-linking


【解决方案1】:

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

1) 在 XCode 的设备控制台中(窗口 - 设备,选择您的 iphone,然后通过单击主视图左下角的三角形打开对话框),您是否看到“拒绝 auth 方法的 URL 'NSURLAuthenticationMethodServerTrust' :kAuthenticationError”?如果是这样,这意味着您的 SSL 证书很可能没有正确设置。

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

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

2) 确保在 developer.apple.com 上打开 Associated Domains 以获得正确的 App ID

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 2016-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-05
        相关资源
        最近更新 更多