从开发切换到生产时与 iCloud 帐户关联的数据

Data associated with iCloud account when switching from development to production

我打算在将应用程序发送到 TestFlight 之前将我的 CloudKit 架构从开发切换到生产,但我对某些事情感到困惑。

在开发模式下测试时,我一直在 Core Data 中添加许多记录。有些是专门制作的,以便在未来的营销截图中看起来不错。由于 NSPersistentCloudKitContainer,它们在设备之间成功同步。这些记录与我的 iCloud 帐户和我的 Apple ID 相关联。

当我将模式切换到生产模式时,新的 Beta 测试人员(以及后来的用户)将创建新记录,存储在他们自己的 iCloud 帐户中的私人数据库中,一切都很好。

但是我和我精心制作的数据会怎样?

在模拟器和我的设备中,我仍然会在生产中使用我在开发中使用的同一个 iCloud 帐户。这是否意味着我将保留现有数据?我认为部署到生产环境不会复制记录...

所以,很明显,有些事情我不明白,在我采取下一步之前,我希望得到一个解释来澄清一切。

简而言之 - 您的开发数据将保留在开发中,当您启动从 testflight 安装的应用程序时,您将开始 'fresh'。

在开发期间从 xcode 构建到模拟器或构建到物理设备时,默认指向开发环境。

当您构建并提交到应用程序商店时 - 用于测试飞行或用于生产发布 - 默认指向生产。

这甚至适用于同一个 iCloud 帐户。一个 iCloud 帐户可以同时拥有开发和生产数据。

因此,在您的设备上为您的 iCloud 帐户进行的 testflight 将指向生产,但是从 xcode 到您的设备(同一 iCloud 帐户)的本地构建将指向开发。

并且您的所有 testflight 用户都将在生产环境中构建数据,因此当您将 'for real' 发布到应用商店时,在 testflight 测试期间创建的数据仍将存在于生产环境中(当然,除非您手动擦拭它)。

您可以将开发构建指向生产,反之亦然,但我暂时认为这超出了这个问题的范围!