【发布时间】:2021-03-22 16:49:09
【问题描述】:
我们应用程序的通用链接目前仅适用于我们的演示和登台环境的 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’s ASAA validator 也确定这些文件没有问题。
Apple’s Link Validation tool 似乎确实向应用程序返回了一个丢失的错误。但它会返回暂存和生产的错误,这让人感觉有点误报。
最大的线索似乎是在新设备上安装应用时查看设备日志。似乎无论何时安装该应用程序,操作系统都会从每个关联的域下载 ASAA 文件,并将它们缓存在自己的 CDN 中(并且可能在设备上)。这似乎适用于演示和暂存相关的 URL,但由于某种原因不适用于美国和英国的生产 URL。
这是我在控制台中收到的成功消息与失败消息的示例:
- 成功:
成功获得挑战
- 失败:
请求“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"}
任务 . 以错误结束 [-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=( “本地数据任务。” ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask ., NSLocalizedDescription=cancelled}
这似乎是一个与 HTTP 请求相关的错误,所以我检查了一下,看起来我能够从谷歌云日志(200 个代码)中看到苹果操作系统试图获取 ASAA 文件的成功消息,所以这并没有好像不是这样的。
任何想法或建议将不胜感激!
【问题讨论】:
标签: ios swift deep-linking ios-universal-links apple-app-site-associate