Ios CloudKit-如何修改其他用户创建的记录
在开发中还可以,, 但当我通过TestFlight发布我的应用程序时,我遇到了这个问题 当我检查一些故障时, 我猜,当没有创建记录的用户试图修改它时,就不能这样做。 顺便说一下,我可以获取公共数据库中的所有记录值。只有修改未执行 在下图中,iCloud帐户以绿色区域书写。我预测这些必须是相同的 现在,用户正试图通过以下代码修改记录:Ios CloudKit-如何修改其他用户创建的记录,ios,swift,xcode,cloudkit,Ios,Swift,Xcode,Cloudkit,在开发中还可以,, 但当我通过TestFlight发布我的应用程序时,我遇到了这个问题 当我检查一些故障时, 我猜,当没有创建记录的用户试图修改它时,就不能这样做。 顺便说一下,我可以获取公共数据库中的所有记录值。只有修改未执行 在下图中,iCloud帐户以绿色区域书写。我预测这些必须是相同的 现在,用户正试图通过以下代码修改记录: func modifyRecord() { let publicDatabase = CKContainer.default().publicCloud
func modifyRecord() {
let publicDatabase = CKContainer.default().publicCloudDatabase
let predicate = NSPredicate(format: "accountID == %@", argumentArray: [myID!])
let query = CKQuery(recordType: "Accounts", predicate: predicate)
publicDatabase.perform(query, inZoneWith: nil, completionHandler: {(records, error) in
if let error = error {
print("error1: \(error)")
return
}
for record in records! {
/* ↓ New Value */
record["currentLocation"] = CLLocation(latitude: 40.689283, longitude: -74.044368)
publicDatabase.save(record, completionHandler: {(record, error) in
if let error = error {
print("error2: \(error)")
return
}
print("success!")
})
}
})
}
在开发过程中,我自己创建和修改了所有记录,所以我没有发现这个问题
版本
代码11.6/Swift 5
总结
我猜在这段代码中有必要由同一个用户(=同一个iCloud帐户)创建和修改记录。
那么,您能告诉我如何修改其他用户创建的记录吗?
首先,我能做到吗
谢谢。看起来您有权限问题。在cloudkit仪表板中,转至:架构>安全角色 然后在“Authenticated”(即用户登录到Icloud)下 您需要向相关记录类型授予“写入”权限。那应该可以解决它