Getting errors when trying to connect to CloudKit using NSPersistentCloudKitContainer

I am trying to build a very basic app using Core Data and CloudKit. I am logged into my CloudKit account on my Mac, and I followed the instructions to run the sample project that Apple provided on their website.

Using the sample project as a guide, I tried to build a simpler app using the instructions provided here.

However, after building trying to run my sample project, I get the following error stack trace in my console:


CoreData: debug: CoreData+CloudKit: -[PFCloudKitOptionsValidator validateOptions:andStoreOptions:error:](35): Validating options: <NSCloudKitMirroringDelegateOptions: 0x60000097f960> containerIdentifier:iCloud.com.cybermedia.CloudKitTest1 initializeSchema:YES ckAssetThresholdBytes:<null> operationMemoryThresholdBytes:<null> useEncryptedStorage:NO automaticallyDownloadFileBackedFutures:NO automaticallyScheduleImportAndExportOperations:YES skipCloudKitSetup:NO preserveLegacyRecordMetadataBehavior:NO useDaemon:YES apsConnectionMachServiceName:<null> containerProvider:<PFCloudKitContainerProvider: 0x600002f602e0> scheduler:<null> notificationListener:<null> containerOptions:<null>
storeOptions: {
NSInferMappingModelAutomaticallyOption = 1;
NSMigratePersistentStoresAutomaticallyOption = 1;
NSPersistentCloudKitContainerOptionsKey = "<NSPersistentCloudKitContainerOptions: 0x600002d73960>";
NSPersistentHistoryTrackingKey = 1;
NSPersistentStoreMirroringOptionsKey = {
NSPersistentStoreMirroringDelegateOptionKey = "<NSCloudKitMirroringDelegate: 0x600001c7dc20>";
};
}
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _setUpCloudKitIntegration](355): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Successfully enqueued setup request.
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest](1854): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Checking for pending requests.
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest]_block_invoke(1866): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Executing: <NSCloudKitMirroringDelegateSetupRequest: 0x60000232c2a0> 6D32A278-F996-438D-AA8D-950F438F6402
2019-07-06 01:10:45.443340-0400 CloudKitTest1[14002:3818396] [error] error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _performSetupRequest:]_block_invoke(769): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Failed to set up CloudKit integration for store: <NSSQLCore: 0x600001274000> (URL: file:///Users/fsyed/Library/Developer/CoreSimulator/Devices/2A838B6E-EF14-4F54-9230-7B747A6DDE9B/data/Containers/Data/Application/249463B2-7348-4DBA-9739-0DDEB0ECBA10/Library/Application%20Support/CloudKitTest1.sqlite)
Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
CoreData: error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _performSetupRequest:]_block_invoke(769): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Failed to set up CloudKit integration for store: <NSSQLCore: 0x600001274000> (URL: file:///Users/fsyed/Library/Developer/CoreSimulator/Devices/2A838B6E-EF14-4F54-9230-7B747A6DDE9B/data/Containers/Data/Application/249463B2-7348-4DBA-9739-0DDEB0ECBA10/Library/Application%20Support/CloudKitTest1.sqlite)
Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
2019-07-06 01:10:45.444373-0400 CloudKitTest1[14002:3818396] [error] error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate recoverFromError:](1259): <NSCloudKitMirroringDelegate: 0x600001c7dc20> - Attempting recovery from error: Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
CoreData: error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate recoverFromError:](1259): <NSCloudKitMirroringDelegate: 0x600001c7dc20> - Attempting recovery from error: Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
2019-07-06 01:10:45.445456-0400 CloudKitTest1[14002:3818396] [error] error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _recoverFromError:withMonitor:](1398): <NSCloudKitMirroringDelegate: 0x600001c7dc20> - Failed to recover from error: Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
Recovery encountered the following error: (null)
CoreData: error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _recoverFromError:withMonitor:](1398): <NSCloudKitMirroringDelegate: 0x600001c7dc20> - Failed to recover from error: Error Domain=NSCocoaErrorDomain Code=134400 "Unable to initialize without an iCloud account (CKAccountStatusNoAccount)." UserInfo={NSLocalizedFailureReason=Unable to initialize without an iCloud account (CKAccountStatusNoAccount).}
Recovery encountered the following error: (null)
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _finishedRequest:withResult:](1883): Finished request: <NSCloudKitMirroringDelegateSetupRequest: 0x60000232c2a0> 6D32A278-F996-438D-AA8D-950F438F6402 with result: <NSCloudKitMirroringResult: 0x600002304ea0>
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest](1854): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: Checking for pending requests.
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest]_block_invoke(1869): <NSCloudKitMirroringDelegate: 0x600001c7dc20>: No more requests to execute.


I keep getting the error:

NSLocalizedFailureReason=Unable to initialize without an iCloud account

Can anyone see or help me identify what it is I'm doing wrong?

Post not yet marked as solved Up vote post of syedfa Down vote post of syedfa
6.4k views

Replies

me too (I am using a simulator as opposed to real device - assume this is ok?)

Besides being logged into iCloud, iCloud Drive needs to be activated in your device settings. NSPersistentCloudKitContainer always writes into the private database. Since the private database is somehow connected to iCloud Drive, iCloud Drive must be enabled in order to work.

Thanks! This helped.

Yep, this helped me too. I went to preferences on my Mac, then Internet Accounts > iCloud and check the box for iCloud Drive and the Mac simulator started syncing 👍🏽

@mr_fat

I am testing on device with iCloud and iCloud Drive turned on yet these errors are thrown in the Xcode debug area.

Sync is working fine, but not sure why the errors are thrown.

I have tried on a new project by checking CoreData and CloudKit with default code and sync happens fine but these errors are thrown