CloudKit - "容器的无效捆绑ID"

时间:2017-09-10 18:31:54

标签: swift cloudkit xcode9beta6

我只是在Xcode 9 beta 6中创建一个项目并添加此代码:

let privateDB = CKContainer.default().privateCloudDatabase
let greatID = CKRecordID(recordName: "GreatPlace")
let place = CKRecord(recordType: "Place", recordID: greatID)

privateDB.save(place) { (record, error) in
        if error != nil {
            let er = (error as! CKError).errorUserInfo
            print("Error: \n")
            print("CKErrorDescription: \(er["CKErrorDescription"]!)\n")
            print("ContainerID: \(er["ContainerID"]!)\n")
            print("NSDebugDescription: \(er["NSDebugDescription"]!)\n")
            print("NSUnderlyingError: \(er["NSUnderlyingError"]!)\n")
            print("NSLocalizedDescription: \(er["NSLocalizedDescription"]!)\n")
            print("ServerErrorDescription: \(er["ServerErrorDescription"]!)\n")
        }
        if record != nil {
            print("record: \(record!)")
        }
 }

并添加此功能:

enter image description here

当我运行代码时收到此错误消息:

enter image description here

我做错了什么?

4 个答案:

答案 0 :(得分:5)

有一个错误导致某些关联被遗漏。该错误已得到修复,我们会自动修复在此期间损坏的容器/应用关联。

如果由于某种原因您仍需要重做关联,您可以使用Xcode中的功能窗格或使用developer.apple.com - >证书,标识符和个人资料 - >应用ID - >选择ID - >编辑 - >在iCloud下编辑 - >选中容器的框以取消关联,保存,然后重新关联。

如果您仍然卡住了,请发送电子邮件至cloudkit [at] apple.com

答案 1 :(得分:0)

我的朋友和我有同样的问题。我们制作了两个不同的项目,它们都有相同的错误消息"容器的无效捆绑ID"这是CKError case 10

我们正在调用我们的fetch函数来获取默认值" Users"记录在viewDidLoad中。

func fetchWorkoutCompleted(completion: @escaping (Error?) -> Void = { _ in }) {
    cloudKitManager.fetchRecord(ofType: "Users", sortDescriptors: nil) { (records, error) in
        if let error = error {
            print(error.localizedDescription)
            completion(error)
            return
        }
        guard let records = records else { completion(nil); return }
        completion(nil)
    }
}

答案 2 :(得分:0)

使用 Xamarin.IOS,我不得不在 info.plist 文件中选择手动配置而不是自动配置。

答案 3 :(得分:-1)

在CloudKit上遇到同样的问题:“容器的包ID无效”, 戴夫帮助修复并恢复了业务!