Сокращение Размера Загрузки для Обновлений приложения для iOS
Q: Как я могу сократить загруженный размер своего обновления приложения для пользователей, которых уже установила предыдущая версия?
A: Этот документ является определенным для обновлений приложения. Посмотрите Технические Вопросы и ответы QA1795: Сокращение размера моего Приложения для набора методов для сокращения размера приложения, когда это загружено и установлено впервые.
Начиная с iOS 6 App Store автоматически произведет пакет обновления для всех новых версий приложений, представленных хранилищу. При генерации пакета обновления App Store сравнивает одну или более предыдущих версий приложения к новой версии и создает оптимизированный пакет для каждого, который содержит только содержание, изменившееся между версиями приложения, исключая любое не изменявшееся содержание. Это сравнение смотрит на все в комплекте приложений, включая исполнимую программу приложения, перья, локализации, файлы образа, видеофайлы, аудиофайлы, текстовые файлы и файлы, содержащие данные в пользовательском формате.
Когда используется оптимально, пакет обновления значительно меньше для загрузки, чем полный пакет приложения и обновления установит более быстро. Кроме того, во многих случаях этот механизм позволяет обновлениям крупным приложениям быть загружаемыми по сотовым сетям, где загрузки приложений подвергаются пределу размера.
В дополнение к новому содержанию пакет обновления содержит инструкции о том, как преобразовать предыдущую версию приложения в новую версию приложения. Новые файлы будут добавлены, измененные файлы будут заменены их обновленным дубликатом, и удаленные файлы будут удалены как часть этой трансформации. Насколько разработчик и пользователь заинтересованы, этот процесс полностью прозрачен, и получающееся обновленное приложение будет неотличимо от полной загрузки соответствующей обновленной версии их приложения.
Для оптимизации размера обновлений приложения необходимо рассмотреть две подсказки:
Не делайте ненужные модификации к файлам. Сравните содержание предшествующих и новых версий Вашего приложения с
diffили другой инструмент сравнения каталога и проверяет, что Вы только изменили то, что Вы ожидаете в своем комплекте приложений.Содержание, которое Вы ожидаете изменять в обновлении, должно быть сохранено в отдельных файлах от содержания, которое Вы не ожидаете изменять. Это сокращает размер пакета обновления и увеличивает его скорость установки.
Для устройств рабочий iOS 6.x и iOS 7.0, пакет обновления будет включать любой файл, полностью, который изменился в новой версии приложения. Например, если Вы имеете файл на 10 МБ в своем приложении и только изменяетесь на 1 КБ содержания в том файле в новой версии приложения, пакета обновления, для которого новая версия будет содержать полный файл на 10 МБ.
Для устройств рабочий iOS 7.1 и позже, пакет обновления может включать только различия между старыми и новыми версиями измененного файла вместо полного файла. Это может значительно сократить размер пакета обновления в случае, где только небольшая часть большого файла изменяется, но увеличит время установки обновления на устройстве. Поэтому эти две подсказки выше все еще важны даже для обновлений на iOS 7.1 и позже. Минимизация измененного содержания и локализация его ко многим меньшим файлам вместо одного большего монолитного файла сократят размер загрузки во всех случаях и ускорят установку на устройствах рабочий iOS 7.1 и позже.
История версии документа
| Дата | Примечания |
|---|---|
| 10.09.2014 | Исправленный ошибка: App Store предлагает новые пакеты на iOS 7.1 и после; поведение iOS 7.0 идентично iOS 6.x поведение. Указанный «QA1795: Сокращение размера моего Приложения». |
| 17.08.2013 | Сделанный некоторой очисткой и разъяснениями. Обновленный для iOS 7. |
| 09.04.2013 | Новый документ, описывающий, как использовать в своих интересах дельту, обновляет функцию, представленную в iOS 6. |