Уменьшение размера файла приложения iOS

Я сделал очень простое приложение для iPhone с Xcode 6.1 и swift. Я действительно новичок в разработке ios и столкнулся с приложением, которое в итоге составляет 134 МБ! конечно это не приемлемо.

У меня есть фоновые изображения для всех размеров экрана, которые составляют до 20 МБ. и это все! Я храню эти изображения в xcassets, так как это предпочтительный способ, я думаю.

Я думаю, что приложение не должно иметь более 25 МБ.

Я понял, что у меня есть несколько ссылок в моем проекте. Я удалил их, и все же мой файл.app 89 МБ!

Что я делаю неправильно? Я прочитал несколько веток по этому вопросу, но ничего не помогло!

Что я делал до сих пор:

- reduce the size of all pngs
- disable the compress PNG option, as it seems to make the PNGs bigger (lol)
- configured the build settings to run the fastest and smallest build
- Strip Debug Symbols During Copy build setting to Yes (COPY_PHASE_STRIP = YES)

edit1: Apparenty Xcode делает что-то странное с моими pngs. Некоторые из этих изображений, изначально размером 2 МБ, в.app-файле занимают более 10 МБ. Что делает XCode там?

1 ответ

Решение

На самом деле неудивительно, что сжатые файлы Apple больше. Они оптимизированы для быстрой загрузки, а не небольших размеров. Если вы не заботитесь о размере по скорости, вызывающе отключите сжатие. Даже если вы заботитесь о скорости, вы можете добиться большего успеха, чем Apple.

https://imageoptim.com/xcode.html

Так что да, отключите сжатие PNG. Первое, что я хотел бы сделать, это построить IPA. Ipa на самом деле является zip-файлом, поэтому создайте ipa, скопируйте его в папку на своем компьютере Mac, переименуйте файл с расширением.zip и дважды щелкните его. Это расширит это. Найдите приложение в папке Payload и щелкните правой кнопкой мыши на нем и выберите Показать содержимое пакета. Вы увидите все активы. Сортировать по размеру. Я предполагаю, что у вас слишком большие изображения. При таком размере я предполагаю, что дополнительный размер, вероятно, будет вызван почти полностью файлами PNG.

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

Также рассмотрите возможность использования файлов JPEG вместо PNG для некоторых файлов, если вам не нужна прозрачность. Файлы JPEG менее эффективны, но могут быть намного меньше. Сравните оба. Зависит от степени, в которой изображения имеют непрерывный тон.

По умолчанию PNG-файл 32-битный. 24-битный цвет и 8-битный альфа / прозрачность. Вы можете сохранить немного размера, перейдя на 24 бит. Вы также можете сохранить большой размер до 16-битного цвета или ниже. В 8-битных файлах PNG используется таблица соответствия цветов. Играйте с Photoshop и сохраните для нас варианты в PNG с битовой глубиной 8 и ниже.

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

https://itunes.apple.com/us/app/lossless-photo-squeezer/id704083918?mt=12

Попробуйте 8-битную опцию PNG и опцию JPEG.

РЕДАКТИРОВАТЬ Я сделал некоторые исследования. Я всегда знал, что Fireworks улучшил сжатие PNG. Я не осознавал, что существует 8-битный PNG с 8-битным альфа-каналом. Photoshop поддерживает 8 бит с альфа-каналом 1 бит. Я всегда говорил людям использовать 32-битный PNG, если их прозрачность требует более 1 бита. В будущем я дам им знать, что 8-битный с 8-битным альфа-каналом может быть лучшим маршрутом, они просто могут использовать Photoshop для окончательного сохранения файла. Им просто нужно сохранить 32 бит и сжать в другом месте.

http://calendar.perfplanet.com/2010/png-that-works/

Дэвид

Другие вопросы по тегам