Всем известно, что в iTunes App Store существует ограничение на размер приложения, загружаемого по каналу 3G. Это ограничение в 20 мегабайт. И, поскольку размер неоптимизированного приложения unity3d версии 3.4 с пустой сценой составляет 13 мегабайт, это заставляет задуматься. Нам дается всего 7 мегабайт на наши ассеты, код и т.д. Тут уж не особо разгуляешься. Начинаешь задумываться об оптимизации размера приложения unity3d.
Итак, поискав немного, я наткнулся на некоторые официальные рекомендации команды unity3d для уменьшения размера билда под iOS.
Итак, во-первых, нужно оптимизировать размер плеера под iOS. Для этого рекомендуются следующие шаги:
Оптимизировать можно и размер самих ассетов и всех файлов, которые использует ваш проект, но об этом в следующий раз.
Спаибо за внимание.
Итак, поискав немного, я наткнулся на некоторые официальные рекомендации команды unity3d для уменьшения размера билда под iOS.
Итак, во-первых, нужно оптимизировать размер плеера под iOS. Для этого рекомендуются следующие шаги:
- Делать билд в режиме release. Для этого в Xcode в меню активной конфигурации билда (Active Build Configuration) нужно переключить из режима Build в режим Release (в Xcode4 это делается при помощи профилей билда).
- Изменить режим iOS Stripping Level (доступно только для Pro-версии). Это можно сделать в Player Settings вашего проекта unity3d. Здесь возможны 4 варианта: Disabled, Strip Assemblies, Strip Bytecode (только для iOS), Use micro mscorlib. Рекомендуют устанавливать Use micro mscorlib. Этот уровень использует урезанную библиотеку mscorlib, которая, конечно же, весит меньше полной. Да и ее функционала на большинство проектов хватает. Для Stripping Level существует так называемый блеклист, который задается с помощью особого вида xml. С его помощью можно включать недостающие библиотеки.
- Установить оптимизацию вызовов скрипта в Fast but no exceptions.
- Не писать код, который использует System.dll или System.Xml.dll. Эти библиотеки несовместимы с micro mscorlib.
- Удалить ненужные зависимости кода (подключенные классы в разделе using).
- Использовать как можно меньшее количество ассетов.
- Использовать .Net 2.0 subset в Api Compatability Level. Это также имеет ряд ограничений по возможности использования библиотек.
- Переключить платформу (Target Platform) в armv6 (OpenGL ES1.1)
- Не использовать JS массивы.
- Избегать использования generic-контейнеров в сочетании со значимыми типами.
Оптимизировать можно и размер самих ассетов и всех файлов, которые использует ваш проект, но об этом в следующий раз.
Спаибо за внимание.
Комментариев нет:
Отправить комментарий