【问题标题】:CloudKit Dashboard: Deploy Schema to Production fails with "There was a problem loading the environment’s status"CloudKit 仪表板:将架构部署到生产失败并显示“加载环境状态时出现问题”
【发布时间】:2021-08-23 23:23:21
【问题描述】:

注意:这并不新鲜,但我对此有一些新见解。

大约三周以来,我经常尝试使用 CloudKit 仪表板将我的 CloudKit 容器的开发模式部署到生产环境:

它会旋转正好一分钟,然后告诉我“加载环境状态时出现问题”


这并不新鲜,许多其他问题也面临着这个问题:

Apple 支持人员告诉我

  • https://developer.apple.com/forums/thread/656723(网络稳定一天后再试)
  • 使用 Safari 并重置浏览器设置以清除缓存和 cookie
  • “您也可以尝试创建一个新的 CloudKit 容器,重建您的架构,然后再试一次。” => 显然行不通,因为用户有生产数据

【问题讨论】:

    标签: icloud cloudkit


    【解决方案1】:

    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

    问题在于 production 架构。我之前使用过Reset Development Environment 以确保我自己没有搞砸,但这可以避免我这样做。


    我使用了Copy as cURL 命令(在 Chrome 中,因为它还复制 auth cookie,而 Safari 没有)并在Terminal 中运行它。

    有趣的是,确实在 1'37 分钟后做出响应。这也是 X-Apple-Edge-Response-Time: 97244 标头所说的内容。

    如果你知道要查找什么,控制台也会告诉你请求超时:

    洞察力 2

    服务器响应时间过长(> 1 分钟),客户端脚本超时(1 分钟)

    注意:您也可以通过在 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://stackoverflow.com/a/8860203

    在等待响应时运行它实际上对我有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      相关资源
      最近更新 更多