CloudKit“Deploy to Production”不显示记录变更且“Deploy”按钮置灰
解决CloudKit架构变更未被识别及Deploy按钮置灰的问题
我之前在CloudKit上折腾架构部署时也踩过几乎一模一样的坑,分享几个亲测有效的排查和解决步骤:
1. 先确认开发环境的变更真的保存了
很多时候我们新增字段后,光顾着配置字段属性,忘了点架构页面右上角的保存按钮——这会导致变更根本没存在开发环境里,生产部署页面自然识别不到。先回到开发环境的对应记录类型,检查新增字段是否正常显示,确保每一处修改都完成了保存操作。
2. 刷新部署页面清除缓存
CloudKit Dashboard的生产部署页面偶尔会缓存旧的架构对比状态,试试这两个操作:
- 完全关闭当前的CloudKit Dashboard标签页,重新打开并进入部署页面
- 手动强制刷新页面(Mac用
Cmd+R,Windows用Ctrl+R),再看看新增字段会不会出现在待部署的变更列表中
3. 检查字段配置是否符合生产部署规则
有些字段配置会让CloudKit跳过这个变更,比如:
- 如果新增字段时设置了必填(Required),但开发环境里已经存在该类型的记录,CloudKit因为无法自动为现有记录填充字段值,会直接忽略这个变更。建议先把字段改成非必填,部署完成后再根据需求调整为必填(同时手动补全现有数据)
- 字段的索引类型如果选了和现有数据冲突的选项,也可能被CloudKit判定为无效变更
4. 解决Deploy按钮置灰的问题
如果只有2项索引变更,但按钮还是无法点击,大概率是这两个变更本身有问题:
- 检查这两个索引对应的字段,是不是在生产环境里已经存在完全相同的索引配置?有时候开发环境的调整其实和生产环境没差异,CloudKit会误显示为待变更项
- 试试删除这两个待部署的索引(在部署页面找到对应项,点击旁边的删除图标),然后回到开发环境重新调整索引并保存,再刷新部署页面
5. 强制触发架构同步(终极方案)
如果前面的方法都没用,可以试试强制让CloudKit重新对比架构:
- 回到开发环境的记录类型页面,随便修改一个无关紧要的配置(比如把某个字段的描述改个字符),点击保存
- 再把这个配置改回原来的状态,再次保存
- 刷新生产部署页面,这时候CloudKit会重新扫描开发环境的架构,大概率能把之前没识别的字段变更拉出来
另外提一句,CloudKit的架构同步偶尔会有延迟,尤其是容器数据量比较大的时候,要是上面的操作都做了,不妨等5-10分钟再刷新页面看看。
内容的提问来源于stack exchange,提问作者Morgan Harris
相关产品推荐
相关产品推荐

