Error "No autenticado" (9/1002) al acceder a la database pública de kit de nube en iOS 10

He integrado el framework de cloudkit en una de mis aplicaciones iOS y funciona bien en iOS 8 y 9, pero no en iOS 10. No consigue los loggings de la database pública sin la count activa de iCloud. Capaz de get los loggings en iOS 8 y 9 si el usuario restringió la unidad iCloud para la aplicación también pero falla en iOS 10, obteniendo errores como

CKError 0x170249090: "No autenticado" (9/1002); "Sin count de respaldo, por lo que no devolverá un token de authentication".

No está funcionando para entornos de desarrollo y producción de cloudkit en dispositivos iOS. He probado la aplicación con la creación de AdHoc apuntando a la producción.

A continuación se muestra mi código

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"RecordSettings" pnetworkingicate:[NSPnetworkingicate pnetworkingicateWithFormat:@"TRUEPREDICATE"]]; CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query]; queryOperation.queuePriority = NSOperationQueuePriorityVeryHigh; queryOperation.recordFetchedBlock = ^(CKRecord *record) { if(record != nil) { } }; queryOperation.queryCompletionBlock = ^(CKQueryCursor * __nullable cursor, NSError * __nullable operationError) { NSLog(@"iCloud error: %@", operationError.description); }; [[[CKContainer defaultContainer] publicCloudDatabase] addOperation:queryOperation]; 

Debe iniciar session con su count de iCloud en un simulador o dispositivo. Funcionó para mí.

La respuesta está en la sección Ingresar cnetworkingenciales de iCloud antes de ejecutar su aplicación de la documentation:

https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/CreatingaSchemabySavingRecords/CreatingaSchemabySavingRecords.html#//apple_ref/doc/uid/TP40014987-CH3-SW12

En desarrollo, cuando ejecuta su aplicación a través de Xcode en un simulador o dispositivo, debe ingresar las cnetworkingenciales de iCloud para leer loggings en la database pública. En producción, los permissions pnetworkingeterminados permiten a los usuarios no autenticados leer los loggings en la database pública, pero no les permiten escribir loggings.

Tengo el mismo problema. Todo funcionó de maravilla hasta iOS10. Lo único que hasta ahora he encontrado para solucionar esto es que el usuario tenga habilitado iCloud Drive en su dispositivo para search cualquier logging en un contenedor público. Estoy en el process de presentar un informe de error con Apple.

Este problema existe en iOS 10.0 a 10.1.1 pero se resolvió en iOS 10.2 .