0

我们应用程序的通用链接目前仅适用于我们的演示和登台环境的 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"]
      }
    ]
  }
}

Branch 的 ASAA 验证器也将这些文件确定为正常。

不过, Apple 的链接验证工具似乎确实向应用程序返回了一个丢失的错误。但它会返回暂存和生产的错误,这让人感觉有点误报。

验证图像

当应用程序安装在新设备上时,最大的线索似乎是查看设备日志。似乎无论何时安装该应用程序,操作系统都会从每个关联的域下载 ASAA 文件,并将它们缓存在自己的 CDN 中(可能在设备上)。这似乎适用于演示和登台相关的 URL,但由于某种原因不适用于美国和英国的生产 URL。

这是我在控制台中收到的成功消息与失败消息的示例:

  • 成功:

成功获得挑战 <NSURLAuthenticationChallenge: 0x7f942e118e90> 任务 AASA-FFCCC66E-AC04-476A-A27F-8F6BE692E04C { domain: *.myCompany-staging.com, bytes: 0, route: cdn } 的凭证

  • 失败:

请求“https://app-site-association.cdn-apple.com/a/v1/myCompany.com”任务 AASA-FF1CF14E-4A11-4320-8398-93379D6CF5F0 { domain: *.myCompany.com, bytes : 0, route: cdn } denied 因为 CDN 告诉我们停止 HTTP 状态 404: SWCERR00101 Bad HTTP Response: 404 Not Found -- {"status":"404 Not Found"}

任务 .<6> 以错误结束 [-999] 错误域=NSURLErrorDomain 代码=-999 “已取消” UserInfo={NSErrorFailingURLStringKey=https://app-site-association.cdn-apple.com/a/v1/myCompany。 com, NSErrorFailingURLKey=https://app-site-association.cdn-apple.com/a/v1/myCompany.com, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<6>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<6>, NSLocalizedDescription=取消}

这似乎是一个与 HTTP 请求相关的错误,所以我检查了一下,看起来我能够从谷歌云日志(200 个代码)中看到苹果操作系统试图获取 ASAA 文件的成功消息,所以这似乎不是是这样的。

任何想法或建议将不胜感激!

4

1 回答 1

0

经过一些调试,事实证明我们将生产文件托管在子域 ( https://app.myCompany.com ) 而不是标准站点 ( https://www.myCompany.com ) 中。

当我们将生产文件移到那里时,我能够验证 iOS 是否能够获取该文件并将其存储在他们的 CDN 中,网址为https://app-site-association.cdn-apple.com/a/v1/myCompany .com

于 2021-03-23T17:02:57.277 回答