在进行更多调查后,我正在回答我自己的问题。
似乎不可能在没有所有者的情况下在 Cloudkit 控制台中创建共享记录,但可以从 Swift 中创建。
这是执行此操作的代码示例:
let sharedDatabase = CKContainer.default().sharedCloudDatabase
sharedDatabase.fetchAllRecordZones { (recordZone, error) in
let myZoneID = recordZone![0].zoneID//Temporary hack
let query = CKQuery(recordType: "parentRecordType", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
sharedDatabase.perform(query, inZoneWith: myZoneID) { (records, error) in
print(records)
let newID = CKRecord.ID(zoneID: myZoneID)
let nameRecord = CKRecord(recordType: "childRecordType", recordID: newID)
nameRecord.setValue("Created by someone who is not the owner", forKey: "title")
nameRecord.parent = CKRecord.Reference(record:records![0], action: .none)
CKContainer.default().sharedCloudDatabase.save(nameRecord) { (savedRecord: CKRecord?, error: Error?) -> Void in
print(error)
}
}
}