2015-04-17 3 views
0

Мое приложение с текущего момента содержит важные файлы в папке «Документы», которые проходят процесс резервного копирования, чтобы их можно было восстановить позднее. Эти файлы создаются пользователями. Однако в папке «Документы» есть папка с именем /Templates, которую мне нужно исключить из резервной копии. Это состоит из файлов, загружаемых с помощью приложения, и они используются для создания новых файлов с основы: шаблона.Использование NSURLIsExcludedFromBackupKey для отключения резервных копий папки в документах

Поэтому мой вопрос заключается в следующем: есть ли способ исключить одну папку в каталоге Documents? Любые решения и/или код будут высоко оценены. Я также предпочел бы сохранить его в каталоге «Документы», если это возможно. Вот сообщение, которое я получил от Центра разрешения iTunes Connect.

Мы обнаружили, что ваше приложение не соответствует руководству по хранению данных iOS , которое требуется в Руководстве по проверке магазина приложений.

В частности, мы обнаружили, что при загрузке и/или загрузке контента в вашем магазине хранятся 102,71 МБ. Чтобы проверить, сколько данных приложение хранит:

  • Установить и запустить приложение
  • Перейти в раздел Настройки> ICloud> Хранение & резервного копирования> Управление хранения
  • При необходимости, нажмите «Показать все приложения»
  • Проверьте хранение вашего приложения

Руководство для хранения данных IOS указывают, что только содержание, что пользователь создает с помощью приложения, например, документы, новые файлы, редактирует, е tc., должен быть скопирован iCloud.

Временные файлы, используемые вашим приложением, должны храниться только в каталоге/tmp ; не забудьте удалить файлы, хранящиеся в этом месте , когда пользователь выйдет из приложения.

Данные, которые могут быть воссозданы, но должна сохраняться для правильного функционирования приложение - или потому, что клиенты ожидают, что это будет доступно для автономного использования - должны быть помечены «не резервное копирование» атрибута. Для объектов NSURL добавьте атрибут NSURLIsExcludedFromBackupKey, чтобы предотвратить резервное копирование соответствующего файла . Для объектов CFURLRef используйте соответствующий атрибут kCFURLIsExcludedFromBackupKey.

Для получения дополнительной информации см. Технические вопросы Q & A 1719: Как предотвратить использование файлов в iCloud и iTunes ?.

Необходимо изменить ваше приложение в соответствии с требованиями iOS Руководства по хранению данных. Если у вас возникли трудности с воспроизведением сообщаемой проблемы , попробуйте протестировать рабочий процесс, описанный в Техническом Q & A QA1764: Как воспроизвести ошибки, сообщаемые в App Store .

Если у вас есть вопросы на уровне кода после использования вышеуказанного ресурса, , вы можете обратиться в службу технической поддержки Apple Developer.Когда инженер DTS следует с вами, пожалуйста, будьте готовы предоставить:

  • полные детали вашего вопроса (ов) отбраковки
  • скриншоты
  • шаги, чтобы воспроизвести проблему (ы)
  • symbolicated крешлоги - если ваши результаты выдают в аварии журнал

ответ

0
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL 
{ 
    if (URL) { 
     assert([[NSFileManager defaultManager] fileExistsAtPath:[URL path]]); 

     NSError *error = nil; 
     BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] 
             forKey: NSURLIsExcludedFromBackupKey error: &error]; 
     if(!success){ 
      NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); 
     } 
     return success; 
    } 
    else 
    { 
     return YES; 
    } 
} 

Вы можете передать URL-адрес папки, и это должно сработать. Таким образом мы отключим резервное копирование для всей папки документов.

+0

Да, и все это хорошо, но я хочу отключить резервную копию папки в папке документов. –