当禁用 iCloud Drive 时,CKContainer fetchUserRecordIDWithCompletionHandler returns nil CKRecordID

CKContainer fetchUserRecordIDWithCompletionHandler returns nil CKRecordID when iCloud Drive is disabled

每当我尝试调用 CKContainerfetchUserRecordIDWithCompletionHandler 函数时,当设备的 iCloud 设置中禁用了 iCloud Drive 时,我无法获得 CKRecordID。返回的错误与我收到的错误相同,就好像设备没有关联的 iCloud 帐户一样。

我正在打电话:

CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler { (recordId, error) {
   //recordId is nil iff iCloud Drive is off
}

我得到的错误是:

<CKError 0x125647120: "Not Authenticated" (9/1002); "CloudKit access was denied by user settings"; Retry after 3.0 seconds>

如果我打开 iCloud Drive,一切正常。这是符合设计的行为还是我遗漏了什么?

它按设计工作。 iCloud Drive 是使用 CloudKit 的必要条件。这记录在 CloudKit Quick Start.

查看 Enter iCloud Credentials Before Running Your App 部分。