【问题标题】:Unable to deploy a Container's Schema to Production - CloudKit, CoreData无法将容器的架构部署到生产环境 - CloudKit、CoreData
【发布时间】:2021-10-09 07:20:52
【问题描述】:

正如标题所示,我正在发布一个使用 Core Data 和 CloudKit 跨多个设备同步用户数据的应用程序。为了通过 TestFlight 以及稍后通过 App-Store 分发应用程序,我必须将我的 CloudKit 容器部署到生产模式。不幸的是,目前这对我来说似乎是不可能的。
因此,按照本指南https://developer.apple.com/documentation/cloudkit/managing_icloud_containers_with_the_cloudkit_database_app/deploying_an_icloud_container_s_schema,我选择了左侧的“Deploy Schema Changes”按钮并确认了部署。


之后我什至收到一条成功消息,但在实际 Container-Selection 下方的顶部仍然显示“此容器尚未部署到生产环境”。

那么我错过了什么?

【问题讨论】:

    标签: ios swift core-data cloudkit


    【解决方案1】:

    在部署架构之前,您需要对其进行初始化。 根据您的屏幕截图,您似乎没有这样做,因为应用了零更改(屏幕截图 2)。您还可以在 Schema 部分看到您有哪些记录类型 - 我猜它是空的。

    您可以使用以下代码初始化方案:

        let options = NSPersistentCloudKitContainerSchemaInitializationOptions()
        try? container.initializeCloudKitSchema(options: options)
                
    

    你需要在pesistentContainer中放入AppDelegate,所以看起来是这样的:

    lazy var persistentContainer: NSPersistentCloudKitContainer = {
        let container = NSPersistentCloudKitContainer(name: "")
        
        container.loadPersistentStores(completionHandler: { })
        
        let options = NSPersistentCloudKitContainerSchemaInitializationOptions()
        try? container.initializeCloudKitSchema(options: options)
                
        return container
    }()
    

    之后,您将在“确认部署”窗口中看到许多记录类型发生了变化。

    您还应该注释掉与选项相关的两行,因为不需要每次都初始化方案。 当您需要再次更新方案时,只需在这些行中添加注释即可。

    另外请记住,记录类型一旦部署就无法更改。

    【讨论】:

    • 感谢您的回答。稍后会尝试...
    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多