我使用Seam3框架与iCloud同步应用程序数据。我正在开发新的版本,我的CoreData模式被更改了。因此,我相应地更改了iCloud模式。但我对把它投入生产感到紧张。当我测试同步时,我发现同步本身工作正常,但是当新模式部署在CloudKit开发环境中并且应用程序仍然使用旧模式时,它无法成功地完成。
因此,为了避免任何问题(或最小化可修复的影响),我需要将模式部署到生产环境中,并在AppStore中发布应用程序。我可以看到,我可以在iTunesConnect中设置计划部署,但在CloudKit仪表板中没有看到这样的选项。
我还检查了苹果博士,没有找到任何解决方案。解决这一问题的最佳办法是什么?计划在iTunesConnect中的部署和登录到CloudKitDashboard,并在应该何时发布app的同时促进模式的发布?但是,在我的行动和真正的提拔之间会有什么差距呢?
发布于 2018-03-03 18:52:34
苹果没有提供任何工具来协调模式的推出与应用程序的发布。我不熟悉Seam3,但我可以理解为什么旧版本无法尝试与它不理解的新模式同步。我在这里看到两种行动:
第一个选项:您将发布旧应用程序的一个版本,该版本可以容忍新模式,或者在检测到新模式时需要更新。然后发布新架构。然后发布新版本的应用程序。如果您没有分支您的代码(以便可以将补丁发布到两个版本),或者如果您的新模式对旧模式使用的相同记录进行了更改(而不是仅仅添加新的记录类型),那么这可能非常困难。
第二个选项:在新容器中展开新模式。您可以创建任意数量的容器(尽管您不能永远删除它们)。因此,旧的应用程序使用原始的,可能是默认的容器和原始模式。新容器中的所有新增内容实际上都是应用程序的原始版本所不可见的,因此不应混淆Seam3。然后,新应用程序在另一个容器中使用新模式。如果需要迁移数据,新应用程序可以轻松地从旧容器读取数据,然后将其写入新容器。
我更喜欢第二种选择,因为老应用程序的用户将继续运行良好,即使他们从来不更新。这可能会发生在仍然使用旧硬件的用户身上,比如一个iphone5,它不能再更新到最新的IOS系统,而是安装了旧版本的应用程序。这种方法还为您提供了迁移数据的选项,因为新应用程序可以从旧容器读取数据并写入新容器。最后,您可以在新应用发布之前在新容器中推出新模式,这样新版本在运行时就已经准备好了,而不会干扰旧版本。
https://stackoverflow.com/questions/48911992
复制相似问题