6

我知道以前有人问过这个问题,并且我已经尝试了在这里、Apple 论坛和各种操作指南网站上可以找到的所有内容,但我仍然遗漏了一些东西,而且我束手无策。我希望有人能在某个地方发现错误。

我在 iPhone 6S 上使用 XCode 7.3.1 和 iOS 9.3.2。

会员中心 App IDs ID:com.hotelplanner.hotelplanner

App ID 有 Assoc。已启用域

与 Assoc 的开发供应配置文件。启用域的 iOS 团队配置文件:com.hotelplanner.hotelplanner

我在 XCode Build Settings 中选择的 Debug Provisioning Profile 与在成员中心启用了 App Domains 的配置文件相匹配。

Xcode Capabilities Associated Domains Applinks:www.hotelplanner.com

Xcode 权利

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:www.hotelplanner.com</string>
    </array>
</dict>
</plist>

curl 下载 apple-app-site-association Titan:app nancysmithwp$ curl -v https://www.hotelplanner.com/.well-known/apple-app-site-association * Trying 69.56.156.14... * 已连接到 www.hotelplanner.com (69.56.156.14) 端口 443 (#0) * 使用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 的 TLS 1.2 连接 * 服务器证书:*.hotelplanner.com * 服务器证书:Symantec Class 3 Secure Server CA - G4 * 服务器证书:VeriSign Class 3 公共主要证书颁发机构 - G5

> GET /.well-known/apple-app-site-association HTTP/1.1
> Host: www.hotelplanner.com
> User-Agent: curl/7.43.0
> Accept: *
> 
< HTTP/1.1 200 OK
< Content-Type: application/json
< Last-Modified: Wed, 29 Jun 2016 14:05:46 GMT
< Accept-Ranges: bytes
< ETag: "f35d6255fd2d11:0"
< Vary: Accept-Encoding,User-Agent
< Server: HOTELPLANNER.COM
< P3P: CP="NOI DSP COR LAW NID CUR ADMa OUR DELa IND PHY ONL UNI PUR COM NAV STA"
< Date: Wed, 29 Jun 2016 17:24:51 GMT
< Content-Length: 169
< 
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "M57RZA2QX5.com.hotelplanner.hotelplanner",
        "paths":[ "/Hotels" ]
     }
    ]
  }
}

我已将 iOS 部署目标设置为 9.0,因此不需要对其进行签名。

https://search.developer.apple.com/appsearch-validation-tool上的验证工具,给定 URL www.hotelplanner.com/Hotels/2446-in-Nassau-Bahamas.html 表示应用程序站点关联文件已通过。深层链接失败,并显示“无法提取深层链接所需的信息。”

笔记中的相同链接始终在 Safari 中打开。长按链接让我没有选择。

myAppDelegate 已实现 application:continueUserActivity:restorationHandler。

-(BOOL) application:(UIApplication*) application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler{

    if (userActivity.activityType == NSUserActivityTypeBrowsingWeb){ 
        NSLog(@"continueUserActivity");
    }
    return NO;
}

当我在我的设备上启动应用程序时,控制台中没有错误。

编辑添加:
我实现了 webcredentials 以查看是否可以获得更多见解,并且我在回调中收到一个错误,即 www.hotelplanner.com 不在我的权利中,但它在那里,并且它的目标复选框是放。此外,如果我将第一个参数保留为 NULL,以便它使用我的权利文件中的域,我会收到错误“未提供域”。

权利

4

3 回答 3

2

我终于向 Apple 提出了我的第一个技术支持协助请求,并且能够解决这个问题。在 Code Signing 下,Any SDK 下的条目为空。我删除了这些条目,一切都像魅力一样。

错误的代码签名权利部分

于 2016-08-18T20:48:10.017 回答
1

过去我也遇到过类似的问题,这似乎是 XCode 错误。在实现通用链接之前,我一直在使用相同的设备来测试构建,一旦我实现了它们,它们就不起作用了。通过卸载该应用程序并重新安装它,我可以让链接正常工作。

我的假设是链接是在安装应用程序时在操作系统中创建的。

于 2016-06-29T19:17:37.787 回答
0

我对你的情况也有同样的问题,我解决了。来自苹果的App Search API 验证工具(https://search.developer.apple.com/appsearch-validation-tool),我得到了 ACTION REQUIRED 无法提取深层链接所需的信息。了解如何实施 Deep Link 中推荐的方法,但它确实有效。

将“路径”:[“/Hotels”] 更改为“路径”:[“/Hotels/*”]。

我希望它有效。

于 2016-07-05T01:53:27.453 回答