iOS создает резервную копию 28.0KB некоторых неизвестных данных из моего приложения в iCloud - PullRequest
4 голосов
/ 17 марта 2012

Мое приложение отклонено из-за того, что я не установил атрибут «не выполнять резервное копирование» для двух внутренних файлов, которые я использую (и храню в / Documents) Я установил атрибут, и он больше не создает резервные копии этих файлов (~ 11,5 МБ).

Тем не менее, он все еще резервирует 28 КБ некоторых данных. Я удалил все данные из папки / Documents и поместил их в / tmp просто для того, чтобы убедиться, что ничто в Documents не может быть скопировано. После этого изменения я подтвердил / Documents пуст для моего приложения, но iCloud удалось найти 28 КБ данных для резервного копирования.

Как я могу точно определить, что это за данные, чтобы предотвратить резервное копирование? Я не хочу, чтобы меня снова отклонили, поэтому я хочу убедиться, что приложение занимает 0 КБ резервного хранилища в iCloud.

Спасибо

Это было уведомление об отказе:

2,23

Мы обнаружили, что ваше приложение не поддерживает iOS Data Storage Рекомендации, которые требуются в соответствии с Рекомендациями по рассмотрению в App Store.

В частности, мы обнаружили, что при запуске ваше приложение хранит 11,53 МБ. к проверьте, сколько данных хранит ваше приложение:

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

Правила хранения данных iOS указывают, что только контент, который пользователь создает с помощью вашего приложения, например, документы, новые файлы, изменения и т. д., может храниться в каталоге / Documents и архивироваться с помощью iCloud.

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

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

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

Необходимо пересмотреть ваше приложение, чтобы соответствовать требованиям iOS Рекомендации по хранению данных. Для дискретных вопросов на уровне кода вы можете хотите проконсультироваться с технической поддержкой Apple Developer. Пожалуйста будьте уверены подготовить любые символические журналы, скриншоты или шаги для Воспроизвести вопросы, когда инженер DTS следует. За информацию о том, как символизировать и читать журнал сбоев, смотрите Техническая записка TN2151 Понимание и анализ приложения для iPhone OS Отчеты о сбоях.

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

Оказывается, предварительно скомпилированная библиотека Google Analytics хранит небольшую базу данных googleanalytics.sql в каталоге / Library.Как только я обнаружил это, я установил для этого файла флаг «не выполнять резервное копирование», и это сработало: я получаю резервную копию 0 КБ.

1 голос
/ 17 марта 2012

28k - это, вероятно, просто структура каталогов и бухгалтерия Apple. Чтобы быть уверенным, подключите ваше устройство к органайзеру Xcode и загрузите каталог документов на жесткий диск, чтобы взглянуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...