¿Cómo puedo evitar que se realice una copy de security de una database Core Data con files externos?

Tenemos una aplicación que utiliza Core Data para almacenar datos. Algunos de los datos provienen de un server y tienen un tamaño variable, y aunque generalmente son pequeños, también pueden ser bastante grandes (algunos megabytes). Estamos utilizando un campo de datos binarys con "Permitir almacenamiento externo" habilitado para almacenar estos datos.

Nuestra aplicación fue rechazada por una infracción de la Regla 2.23, porque estamos almacenando datos que podemos volver a download del server y no marcarlo como para ser excluidos de las copys de security.

Está bien, es justo, así que quiero marcar nuestra database para que se excluya de la copy de security. Marcar la database en sí es bastante fácil:

BOOL succ = [storeURL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error]; if (!succ) { NSLog(@"Error setting %@ to be excluded from backups: %@", storeURL, error); } 

Pero esto solo cubre el file SQLite en sí. Cuando Core Data almacena files externos, los almacena en un directory separado:

 .../Private Documents/MyDatabase.sqlite .../Private Documents/.MyDatabase_SUPPORT/_EXTERNAL_DATA/(files here) 

Necesito marcar los files almacenados externamente como no-para-copy de security. Podría configurar NSURLIsExcludedFromBackupKey en la carpeta .MyDatabase_SUPPORT, pero no veo ninguna forma admitida para get el nombre de esta carpeta.

Podría simplemente comstackrlo yo mismo, pero no me gusta dependiendo de este detalle de implementación. ¿Hay alguna forma compatible para averiguar dónde Core Data está almacenando los files externos para una database?

Cree un subdirectory, cree la database dentro de ese subdirectory y luego establezca el atributo NSURLIsExcludedFromBackupKey en el subdirectory. De esa forma, cualquier elemento dentro del subdirectory, incluido el directory SUPPORT oculto, se excluirá de la copy de security.