我们的应用程序中的通用链接目前只适用于我们的演示和暂放环境中的URL,而不是我们的生产环境。
因此,例如,指向https://app.myCompany.com/events/1的链接不起作用,但https://app.myCompany-staging.com/events/1起作用。
我回顾了环境之间的配置,它们看起来是一样的,所以我有点困惑于为什么会发生这种情况。
我检查了XCode项目中的相关域和应享权利配置,它们看起来很好,并指向正确的域:
        <string>applinks:*.myCompany-staging.com</string>
        <string>applinks:*.myCompany.com</string>
        <string>applinks:*.myCompany-demo.com</string>在暂存和生产之间的应用程序关联文件似乎也是一样的,因此不应该出现配置问题:
{
  "applinks": {
    "apps":[],
    "details":[
      {
        "appID":"teamID.bundleId",
        "paths":["/ios/auth", "/event_checkin_landing_page", "/events/*", "/career_fairs/*", "/conversations/*", "/jobs/*", "/schools/*", "/meetings/*/video", "/video_sessions/*", "/interview_schedules/*/public_invite"]
      }
    ]
  }
}分支机构的ASAA验证器还将这些文件确定为ok。
不过,苹果的链接验证工具似乎确实向应用程序返回了一个丢失的错误。但是它返回了分阶段和生产的错误,这让人觉得这是个假阳性。
最大的线索似乎是在新设备上安装应用程序时查看设备日志。似乎只要安装了应用程序,操作系统就会从每个相关域下载ASAA文件,并将它们缓存在自己的CDN中(可能还会在设备上)。这似乎很好的演示和播放相关的URL,但出于某种原因,不适用于美国和英国的生产。
下面是我在控制台中获得的一个成功消息的示例,与失败相比:
成功获得了挑战证书 -FCCC66E-AC04-476A-A27F-8F6BE692E04C{域:*..myCompany staging.com,字节: 0,路由: cdn }
请求任务https://app-site-association.cdn-apple.com/a/v1/myCompany.com-FF1CF14E-4A11-4320-8398-93379D6CF5F0{域:*.myCompany.com,字节: 0,路由: cdn }被拒绝,因为CDN告诉我们停止HTTP状态404: SWCERR00101坏HTTP响应:404-Noted-{“状态”:“404未找到”}
任务.<6>完成错误-999错误Domain=NSURLErrorDomain代码=-999“取消”“NSErrorFailingURLKey=https://app-site-association.cdn-apple.com/a/v1/myCompany.com,_NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<6>”),_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<6>,NSLocalizedDescription=cancelled}
这似乎是一个与HTTP请求相关的错误,所以我检查了一下,看起来我能够从google云日志(200个代码)中看到成功的消息,因为苹果操作系统试图获取ASAA文件,所以情况似乎并非如此。
如有任何意见或建议,将不胜感激!
发布于 2021-03-23 17:02:57
经过一些调试后,我们发现我们将生产文件托管在子域中(https://app.myCompany.com),而不是标准站点(https://www.myCompany.com)。
当我们将生产文件移到那里时,我能够验证iOS是否能够捡起该文件,并将其存储在https://app-site-association.cdn-apple.com/a/v1/myCompany.com的CDN中。
https://stackoverflow.com/questions/66750378
复制相似问题