Уменьшить размер моего приложения, чтобы оно быстрее загружалось и устанавливалось?

Перед тем, как попробовать какие-либо оптимизации, вы должны измерить. Некоторые из методов, описанных в этом документе, представляют собой компромиссы с недостатками, которые необходимо учитывать. Вы должны измерить их влияние, чтобы быть уверенным, что делаете правильный выбор. Без измерения вы не можете знать, какие изменения вы вносите.

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

  • Набор приложений — это набор .app, содержащий все двоичные файлы вашего приложения, а также все ресурсы вашего приложения, например изображения. Этот пакет содержит все необходимое для запуска вашего приложения на всех поддерживаемых устройствах. Для целей этого документа под пакетом приложений понимается только .app, созданный в результате архивирования вашего приложения.
  • Отправка в App Store .ipa создается из архива Xcode при загрузке в App Store или при экспорте архива для развертывания в iOS App Store. Этот .ipa представляет собой сжатый каталог, содержащий комплект приложений и дополнительные ресурсы, необходимые для служб App Store, такие как .dSYM файлы для отчетов о сбоях и пакеты ресурсов для ресурсов по запросу.
  • Универсальный файл .ipa – это сжатый пакет приложений, содержащий все ресурсы для запуска приложения на любом устройстве. Биткод был перекомпилирован, а дополнительные ресурсы, необходимые App Store, такие как файлы .dSYM и ресурсы по запросу, удалены. Для приложений App Store этот .ipa загружается на устройства под управлением iOS 8 или более ранней версии.
  • Тонкий .ipa – это сжатый пакет приложений, который содержит только те ресурсы, которые необходимы для запуска приложения на определенном устройстве. Биткод был перекомпилирован, а дополнительные ресурсы, необходимые App Store, такие как файлы .dSYM и ресурсы по запросу, удалены. Для приложений App Store этот .ipa загружается на устройства под управлением iOS 9 или более поздней версии.
  • Универсальный набор приложений — это распакованный универсальный пакет .ipa. В процессе установки универсальный .ipa распаковывается и устанавливается универсальный пакет приложений.
  • Утонченный набор приложений — это распакованный утонченный .ipa. Процесс установки распаковывает истонченный .ipa и устанавливает истонченный пакет приложений.

Получение отчета о размере приложения

Xcode предоставляет инструменты отчетности, которые помогут вам понять размер вашего приложения. Чтобы создать отчет о размере:

  1. Архивируйте свое приложение.
  2. Экспортируйте свой архив для тестирования вне магазина.
  3. Выберите «Экспорт для определенных устройств» и выберите «Все совместимые варианты устройств» во всплывающем меню.
  4. Выберите «Восстановить из битового кода».

В выходной папке вы найдете App Thinning Size Report.txt, который разбивает размеры сжатых и несжатых файлов, а также размер любых ресурсов по требованию для каждого типа устройства. Пример этого файла приведен в листинге 1.

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