Что на самом деле происходит во время обновления iOS-приложения? - PullRequest
1 голос
/ 14 декабря 2011

У меня есть простое приложение, которое загружает некоторые данные из веб-службы и отображает их в виде таблиц.Чтобы разрешить автономный доступ, приложение кэширует эти данные в каталоге кеша на самом устройстве.Я держу список всех кэшированных файлов для справки и сохраняю их также в каталоге кеша.Итак, после завершения всех загрузок у меня есть следующие файлы:

XMLFileList
XML1
XML2
...

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

Казалось бы, данные не отображаются в загруженномфайлы, потому что они больше не существуют.Также не происходит повторная загрузка файлов, поскольку они отображаются в сохраненном списке.Это вызывает довольно интересный вопрос: почему кешированные XML-файлы были удалены, а не главный список?

Что именно происходит за кулисами во время обновления приложения, которое я мог бы учесть или воспроизвести для обеспеченияэто не продолжает происходить?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Если вы помещаете файлы в / Library / Caches (или где-либо еще), то нет никакой гарантии, что эти файлы будут там при следующем запуске приложения. Однако все, что вы положите в / Documents, будет там. И на самом деле, все, что находится в / Documents, также будет зарезервировано в iCloud (если только вы не установите бит, недавно доступный в iOS 5.0.1, который позволяет вам отказаться от файлов в / Documents от резервного копирования.)

В любом случае, дело в том, что вы должны прочитать документы Apple о том, какие файлы вы должны поместить куда. (Я искал правильную ссылку безуспешно; хотя я видел ее раньше.) Это сводится к следующему: все, что генерируется пользователем, должно идти в / Documents, все, что может быть повторно получено с сервера, должно входить в / Библиотека / Кэши и могут быть очищены ОС .

0 голосов
/ 14 декабря 2011

Содержимое каталога кэша не гарантируется. Но я не вижу никаких документально подтвержденных гарантий, что весь каталог будет очищен одновременно. (Может быть, только самое большое и / или самое старое содержимое или что-то подобное?)

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