我遇到以下错误。
ERROR[CKErrorDomain:2] Failed to modify some records,
<CKError 0x1c005e1e0: "Partial Failure" (1011); "Failed to modify some records";
partial errors: {
BB27A0F8-0D8A-4279-A4E6-515B4E6C5116:(MainCustomZone:__defaultOwner__) =
<CKError 0x1c0050740: "Zone Not Found" (26/2036); server message = "Zone 'MainCustomZone'
does not exist"; uuid = E4AE311D-A73F-4F8A-BAF7-1EF5082D2FA9>
}>
我的应用程序在我的开发设备上可以正常运行,但是在beta版用户的testflight中,他们遇到了上述错误。是的,当我使用testflight构建版本时,它仍然可以正常工作,是的,我指的是权利中的生产conatiner,已将“ com.apple.developer.icloud-container-environment”设置为“生产”。
我已经三重检查了我在寻找正确的容器,并且正确拼写了区域名称。
我在开发人员帐户中的应用程序ID下启用了iCloud。
我还为每种记录类型的安全角色设置了用于身份验证的写集。
请有人可以提出问题所在吗? 我一直在研究这个问题,但没有成功。
以下是创建我使用的区域的一些典型代码。
CKFetchRecordChangesOperation *changesOperation = [[CKFetchRecordChangesOperation alloc]
initWithRecordZoneID: [self customZone]
previousServerChangeToken: previousServerChangeToken];
-(CKRecordZoneID*)customZone
{
return [[CKRecordZoneID alloc] initWithZoneName: cCUSTOM_ZONE
ownerName: CKOwnerDefaultName];
}
答案 0 :(得分:1)
数据库中只有一个区域-默认区域。如果您的应用程序正在使用其他任何区域,则您的应用程序必须先创建区域,然后才能尝试访问(或写入)该区域中的任何记录。
您可能在某个时候在开发中创建了区域,这就是代码在那里工作的原因。
该屏幕快照显示了您的私有数据库。每个用户都有自己的私有数据库,您无法在仪表板中看到其他用户的私有数据库。您需要通过应用程序中的代码创建区域。