iOS App未使用自定义iCloud容器

时间:2017-05-21 18:01:59

标签: ios xcode containers icloud cloudkit

所以,我正在开发两个我想要使用相同iCloud容器的应用程序。

我已按照Xcode和Apple的在线文档中所示的所有步骤进行操作。我添加了激活iCloud功能到我的应用程序,检查了CloudKit复选框,选择了我想要使用的自定义容器(两个应用程序显然相同)。

应用程序更改了权利文件中的iCloud容器标识符,这应该表明一切正常。但是,每当我使用应用程序并打印容器名称时,它都会显示每个应用程序的默认容器名称。

对于这两个应用,功能屏幕如下所示: enter image description here

我创建了一个对象CloudKitController来管理所有云流量。我会在应用程序启动时将其初始化,并设置如下变量:

var container:      CKContainer
var publicDB:       CKDatabase
let privateDB:      CKDatabase
var delegate:       CloudKitControllerDelegate?

override init() {
        container = CKContainer.default()
        print(container.containerIdentifier)
        //this prints the name of the default container for the project
        publicDB = container.publicCloudDatabase
        privateDB = container.privateCloudDatabase
    }

我甚至去了开发人员门户网站并确保我想要使用的容器是两个应用程序关联的唯一容器。也没有工作。

我的问题是:如何在同一个开发者帐户和配置文件中使用两个应用程序来处理一个iCloud容器?

1 个答案:

答案 0 :(得分:4)

您声明您希望使用具有特定标识符的特定容器。但您拥有的代码是专门访问应用程序的默认容器。那不是你想要的那个。

变化:

container = CKContainer.default()

为:

container = CKContainer(identifier: "your shared container id")

有关详细信息,请阅读CKContainer类的文档。