CloudKit 仪表板:将模式部署到生产失败并显示 "There was a problem loading the environment’s status"
CloudKit Dashboard: Deploy Schema to Production fails with "There was a problem loading the environment’s status"
注意:这不是新的,但我对此有一些新的见解。
现在大约三个星期,我经常尝试使用 CloudKit 仪表板将我的 CloudKit 容器的开发模式部署到生产中:
它旋转 正好 一分钟然后告诉我“加载环境状态时出现问题”
这不是新问题,许多其他问题也面临着这个问题:
- 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 容器,重建您的模式,然后再试一次。” => 显然不行,因为用户有生产数据
长话短说:
在控制台中通过 运行 终止超时:
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
问题出在 production 架构上。我以前用过 Reset Development Environment
来确保我自己没有把它搞砸,但这会让我省下来。
我使用了 Copy as cURL
命令(在 Chrome 中,因为它还复制了身份验证 cookie,而 Safari 没有)和 运行 在 Terminal
中。
有趣的是, 会在 1'37 分钟后做出响应。 X-Apple-Edge-Response-Time: 97244
header 也是这么说的。
如果您知道要查找什么,控制台也会告诉您请求超时:
洞察 2
服务器响应时间过长(> 1 分钟)并且客户端脚本超时(1 分钟)
注意:您也可以通过right-clicking Chrome中的请求并选择“Replay 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://whosebug.com/a/8860203)
运行 在等待回复的过程中对我来说真的很管用!
注意:这不是新的,但我对此有一些新的见解。
现在大约三个星期,我经常尝试使用 CloudKit 仪表板将我的 CloudKit 容器的开发模式部署到生产中:
它旋转 正好 一分钟然后告诉我“加载环境状态时出现问题”
这不是新问题,许多其他问题也面临着这个问题:
- 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 容器,重建您的模式,然后再试一次。” => 显然不行,因为用户有生产数据
长话短说:
在控制台中通过 运行 终止超时:
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
问题出在 production 架构上。我以前用过 Reset Development Environment
来确保我自己没有把它搞砸,但这会让我省下来。
我使用了 Copy as cURL
命令(在 Chrome 中,因为它还复制了身份验证 cookie,而 Safari 没有)和 运行 在 Terminal
中。
有趣的是, 会在 1'37 分钟后做出响应。 X-Apple-Edge-Response-Time: 97244
header 也是这么说的。
如果您知道要查找什么,控制台也会告诉您请求超时:
洞察 2
服务器响应时间过长(> 1 分钟)并且客户端脚本超时(1 分钟)
注意:您也可以通过right-clicking Chrome中的请求并选择“Replay 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://whosebug.com/a/8860203)
运行 在等待回复的过程中对我来说真的很管用!