Предотвращение резервного копирования файлов в iOS - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть приложение, которое было отклонено, потому что я загружаю некоторые изображения из Интернета, и рецензент App Store говорит, что они не должны быть скопированы (с чем я категорически не согласен, но что я могу сделать).

Итак, я поместил все эти файлы в каталог в / Documents и добавил атрибут not not backup к файлам в подкаталоге (но забыл сделать это в самом подкаталоге).

Когда я повторно отправил свое приложение, приложение было снова отклонено, потому что рецензент сказал, что я все еще использую слишком много места, и у меня сложилось впечатление, что мой атрибут not backup не был учтен.

Я думаю, что, возможно, знаю проблему, но я хотел бы получить подтверждение еще до того, как перейти к процессу повторной отправки моего приложения.

Прямо сейчас моя структура каталогов выглядит так:

Documents/
    subdir.derived/
        <a bunch of files>

Я поставил атрибут «не резервное копирование» для файлов, но не для «subdir.derived».

Когда я перечитываю документацию Apple, мне интересно, работает ли атрибут not backup только на верхнем уровне каталога «Documents /», а не на файлах в подкаталогах.

Кто-нибудь может подтвердить, что это правда? Если я добавлю атрибут «not backup» в «subdir.derived», это исправит мою проблему?

Спасибо, Рон

Ответы [ 3 ]

3 голосов
/ 16 февраля 2012

Я бы использовал каталог Library / Caches для загруженных изображений.Вот почему он существует, и он не резервируется автоматически, поэтому рецензенты не будут жаловаться на это.Он также имеет удобный ярлык: NSCachesDirectory.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDir = [paths objectAtIndex:0];
3 голосов
/ 17 февраля 2012

Когда мы получили аналогичное замечание об отказе, мы переместили все наши файлы кэша с ~/Documents на ~/Library/PrivateDocuments и установили флаг «не делать резервную копию» в каталоге PrivateDocuments.Этого было достаточно, чтобы порадовать рецензентов App Store.

Почему бы не ~/Library/Caches?Хотя файлы технически являются кешем, ожидается, что наши пользователи смогут получить к ним доступ в автономном режиме.Поскольку ОС ~/Library/Caches может быть очищена без уведомления ОС, наши пользователи могут неожиданно обнаружить, что контент, который они пытались загрузить для автономного доступа, исчез.

Имя каталога PrivateDocuments было явно предложено приложением.Рецензент магазина, кстати.

0 голосов
/ 16 февраля 2012

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

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