如何解决CloudKit 仪表板:将架构部署到生产失败,并显示“加载环境状态时出现问题”
注意:这并不新鲜,但我对此有一些新的见解。
现在大约三个星期以来,我经常尝试使用 CloudKit 仪表板将我的 CloudKit 容器的开发模式部署到生产环境中:
它旋转正好一分钟,然后告诉我“加载环境状态时出现问题”
这并不新鲜,许多其他问题也面临着这个问题:
- Error CloudKit Dashboard - There was a problem loading the environment's status
- Does iCloud need to be in the Production environment in order to use in Production?
- iCloud dashboard: Cannot deploy CloudKit schema to Production
Apple 支持告诉我
- 看看https://developer.apple.com/forums/thread/656723(网络稳定一天后再试)
- 使用 Safari 并重置浏览器设置以清除缓存和 Cookie
- “您也可以尝试创建一个新的 CloudKit 容器,重建您的架构,然后再试一次。” => 显然不起作用,因为用户有生产数据
解决方法
TL;DR:
通过在控制台中运行来终止超时:
var id = window.setTimeout(function() {},0);
while (id--) {
window.clearTimeout(id); // will do nothing if no timeout with id is present
}
(响应是 undefined
— 没关系)
我是如何到达那里的
因此,当我单击“部署”时,我开始查看站点向后端发出的请求。 Chrome 显示请求到
https://p39-ckdatabasews.icloud.apple.com/r/v3/user/<container-name>/production/public/admin/deployment/status?team_id=<team-id>
1.0 分钟后取消。
洞察 1
问题在于生产架构。我之前使用过 Reset Development Environment
以确保我没有把它搞砸,但这会让我免于这一点。
我使用了 Copy as cURL
命令(在 Chrome 中,因为它还复制了 auth cookie,而 Safari 没有)并在 Terminal
中运行它。
有趣的是,确实在 1'37 分钟后响应。 X-Apple-Edge-Response-Time: 97244
标题也是如此。
如果您知道要查找什么,控制台还会告诉您请求超时:
洞察 2
服务器响应时间过长(> 1 分钟),客户端脚本超时(1 分钟)
注意:您还可以通过在 Chrome 中右键单击请求并选择“重放 XHR”来获得响应。
解决方案
我试图理解发送 XHR 请求的 JavaScript 并修改超时,但我失败了。但是,您显然可以清除
存在的所有超时var id = window.setTimeout(function() {},0);
while (id--) {
window.clearTimeout(id); // will do nothing if no timeout with id is present
}
(来自https://stackoverflow.com/a/8860203)
在等待响应的同时运行它实际上对我有用!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。