NSUserDefaults вызывает отклонение приложения

Тестеры Apple отказались от нашего приложения из-за нарушения правил:

[2.23 Приложения должны соответствовать Руководству по хранению данных iOS, иначе они будут отклонены]

Поскольку мы сохранили файлы нашей базы данных без флага NSURLIsExcludedFromBackupKey, они были зарезервированы в iCloud и вызвали отказ.

Итак, мы добавили к нашим файлам флаг NSURLIsExcludedFromBackupKey, и это уменьшило объем данных, хранящихся в iCloud.

НО - мы поняли, что NSUserDefaults также занимает некоторое количество места в iCloud. Мы используем [NSUserDefaults standardUserDefaults], и у нас нет особого контроля над ним.

Если мы перейдем к device->settings->iCloud->Storage и BackUP->Manage Storage, мы увидим, что наше приложение по-прежнему занимает 0,5 КБ данных в iCloud из-за использования NSUserDefaults. (удаление использования NSUserDefaults в коде уменьшит его до 0 - нет данных)

Отклонит ли Apple снова наше приложение, потому что NSUserDefaults берет данные в iCloud?


person igoren    schedule 22.06.2012    source источник
comment
Нет, предполагается, что приложения будут использовать NSUserDefaults, сколько места занимали другие ваши файлы и где они хранились?   -  person danielbeard    schedule 22.06.2012
comment
Приложение использовало 2,4 МБ места. Теперь он занимает от 0,4 КБ до 0,8 КБ.   -  person igoren    schedule 22.06.2012
comment
Теперь я вижу предупреждение в коде: ПРЕДУПРЕЖДЕНИЕ. Фаза сборки ресурсов копирования пакета содержит файл Donno-Info.plist этой цели «Donno-Info.plist». Я вижу, что он скопировал plist из пакета. Мы уже отправили приложение в Apple таким образом, как вы думаете, они отклонят приложение по этой причине? (это может удвоить объем пространства NSUserDefaults).   -  person igoren    schedule 22.06.2012
comment
После отправки нашего приложения на проверку в Apple мы поняли, что у нас есть это предупреждение в коде: ПРЕДУПРЕЖДЕНИЕ. Фаза сборки Copy Bundle Resources содержит файл Donno-Info.plist этой цели... Поскольку он может фактически удвоить файл plist, - Apple отклонит приложение из-за использования лишнего места в iCloud? (нам уже отказали в первый раз из-за хранения файлов базы данных без флага DO_NOT_BACKUP) Спасибо.   -  person igoren    schedule 22.06.2012
comment
Ваш основной файл plist не должен находиться в ресурсах набора копий.   -  person danielbeard    schedule 25.06.2012
comment
@igoren, что случилось с твоим приложением? У меня действительно похожая ситуация - любопытно, будут ли проблемы с 400 байтами.   -  person glenstorey    schedule 20.07.2012
comment
Я бы не слишком беспокоился о том, что appname-info.plist будет включен в стадию copy resources, так как он в любом случае называется в комплекте как info.plist.   -  person A-Live    schedule 26.03.2013


Ответы (1)


Вы можете использовать любой объем данных в NSUserDefaults в своем приложении, и вы не будете отклонены. Я не уверен, каковы максимальные данные для него, но я не помню, чтобы Apple указывала предел. Однако существует ограничение на настройки iCloud по умолчанию. Вы можете создать резервную копию NSUserDefaults в iCloud, но существует строгое ограничение в 1 МБ для сохраненных там данных. Поэтому помните о том, насколько велики ваши данные при сохранении там.

person Bill Burgess    schedule 26.03.2013
comment
Но NSUserDefaults также не предназначен для произвольного хранения данных. Он предназначен только для предпочтений и настроек. - person uchuugaka; 01.02.2014