Mais problemas de sincronização do iCloud Core Data

Então, finalmente aconteceu. O pior cenário possível para qualquer desenvolvedor independente de iPhone ocorreu. Vários usuários estão relatando completaperda de dados depois de atualizar meu aplicativo. A sincronização do iCloud Core Data não está funcionando. Meus usuários estão usando este aplicativo parcialmente para administrar seus negócios. Isto é verdadeiramentefalha catastrófica.

A única coisa relacionada ao iCloud que alterei foi adicionar o armazenamento de valor-chave ao iCloud. O código de dados do núcleo permaneceu exatamente o mesmo, a mesma versão do modelo (sem migração) etc.

Nos meus testes tudo funcionou lindamente! Mas para meu espanto, os usuários informaram que seus dados não estavam mais lá quando eles abriram o aplicativo atualizado.

Qual poderia ser a razão disso?

oURL da loja persistente (um URL onipresente) não deveria ter mudado.Mesclar conflitos também são improváveis, já que esse problema deveria ter surgido antes da atualização.Alguma interferência com o novoarmazenamento de valor-chave onipresente possivelmente?
(Eu praticamente descartei isso.)

Abaixo, localize o código do meu modelo de objeto gerenciado e do armazenamento persistente. Deixe-me saber se você precisar de mais alguma coisa para avaliar o problema.

- (NSManagedObjectContext *)managedObjectContext {

    if (managedObjectContext_ != nil) {
        return managedObjectContext_;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        managedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
        [managedObjectContext_ performBlockAndWait:^{
            [managedObjectContext_ setPersistentStoreCoordinator:coordinator];
            if (useICloud) {
                [managedObjectContext_ setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
                [[NSNotificationCenter defaultCenter] addObserver:self
           selector:@selector(mergeiCloud:)
           name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
           object:coordinator];
            }
        }];
    }
    return managedObjectContext_;
}

e

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (persistentStoreCoordinator_ != nil) {
        return persistentStoreCoordinator_;
    }

    NSMutableDictionary *options = [NSMutableDictionary dictionary];
    NSURL *storeURL = [[self applicationDocumentsDirectory] 
            URLByAppendingPathComponent:@"SalesCalls.sqlite"];

    [options setObject:[NSNumber numberWithBool:YES] 
                  forKey:NSMigratePersistentStoresAutomaticallyOption];
    [options setObject:[NSNumber numberWithBool:YES] 
                  forKey:NSInferMappingModelAutomaticallyOption];

    if (useICloud) {  // this is an internal flag set to YES
        NSURL *iCloudURL = [[NSFileManager defaultManager] 
                               URLForUbiquityContainerIdentifier:nil];

        if (nil!=iCloudURL) {
            NSString *cloudData = [[iCloudURL path] 
                       stringByAppendingPathComponent:@"data"];
            iCloudURL = [NSURL fileURLWithPath:cloudData];      

            [options setObject:@"at.topofmind.salesplus.store" 
                        forKey:NSPersistentStoreUbiquitousContentNameKey];
            [options setObject:iCloudURL 
                        forKey:NSPersistentStoreUbiquitousContentURLKey];

            NSURL *nosyncDir = [iCloudURL 
                        URLByAppendingPathComponent:@"data.nosync"];
            [[NSFileManager defaultManager] createDirectoryAtURL:nosyncDir 
                        withIntermediateDirectories:YES 
                        attributes:nil error:nil];

            storeURL = [nosyncDir 
                        URLByAppendingPathComponent:@"SalesCalls.sqlite"];
        }
    }

    NSError *error = nil;
    persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] 
             initWithManagedObjectModel:[self managedObjectModel]];
    if (![persistentStoreCoordinator_ 
                  addPersistentStoreWithType:NSSQLiteStoreType
                  configuration:nil URL:storeURL options:options error:&error]) 
   {
        NSLog(@"Cannot create persistent store coordinator, %@, %@", 
                        error, [error userInfo]);
        abort();
    }    

    return persistentStoreCoordinator_;
}

Comentários, opiniões, adivinhações selvagens, etc. (e, claro, soluções!) São bem-vindos.

ATUALIZAR:

Um dos meus clientes perdeu todos os seus dados e depois de reinstalar e redefinir tudo (reinicializar o dispositivo, etc.), ele não conseguiu mais sincronizar com o iCloud. O símbolo simplesmente não aparece nas configurações.

questionAnswers(1)

yourAnswerToTheQuestion