macosswifticloudcloudkiticloud-api

Cloudkit gives error when trying to save a record


I am trying to simply save a record to a users private database but when I run privateDB.saveRecord() I get an error saying

Not Authenticated" (9/1002); "CloudKit access was denied by user settings"; Retry after 3.0 seconds>.

This account is able to sign into the cloudkit dashboard so it is a developer for the application. What other issues might cause this? Any help would be really appreciated, I have been stuck on this for so long.

Here is my code:

//variable instantiation
container = CKContainer.defaultContainer()
println(container.containerIdentifier)
publicDB = container.publicCloudDatabase
privateDB = container.privateCloudDatabase

//save record code
let passRecord = CKRecord(recordType: "Password")
passRecord.setValue("testytestPow", forKey: "title")
passRecord.setValue("password02", forKey: "value")
privateDB.saveRecord(passRecord, completionHandler: { (record, error) -> Void in
    if (error != nil) {
        println(error)
    } else {
        NSLog("Saved in cloudkit")
        self.fetchTodos()
    }
})

Solution

  • I found I couldn't connect to CloudKit at all until I upgrade to iCloud drive; in my case I was able to do it in the simulator. Also you can't log in to iCloud on the simulator if you have 2-factor authentication set up, it seems.