Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Оптимизация размера встроенного iOS Player

Двумя основными способами уменьшить размер проигрывателя являются создание правильной выпускной сборки в Xcode и изменение уровня удаления в Unity.

Создание для распространения

Ожидается, что окончательные сборки релиза будут сделаны с помощью команды Xcode Продукт > Архивировать. Использование этой команды гарантирует, что сборка будет выполнена с конфигурацией выпуска, и все символы отладки удалены. После выполнения этой команды Xcode переключается на вкладку Архивы окна Организатора. Инструкции по расчету размера приложения и другие советы по уменьшению размера см. в разделе «Технические вопросы и ответы» Apple на странице Уменьшение размера моего приложения.

Примечание. Мы рекомендуем вам иметь небольшой дополнительный запас на ошибку при стремлении к ограничению загрузки по беспроводной сети (который в настоящее время составляет 150 МБ).

Уровень зачистки iOS

Активировать оптимизацию размера для Mono бэкэнд сценариевфреймворка, поддерживающего сценарии в Unity. Unity поддерживает три различных бэкэнда для сценариев в зависимости от целевой платформы: Mono, .NET и IL2CPP. Однако универсальная платформа Windows поддерживает только два: .NET и IL2CPP. Дополнительная информация
Смотреть в сборках Словарь
, удалив работу следующим образом:

  1. Уровень сборки: скриптыфрагмент кода, позволяющий создавать собственные компоненты, триггеры игровые события, изменяйте свойства компонентов с течением времени и реагируйте на действия пользователя любым удобным для вас способом. Подробнее
    См. в Словарь
    ' байт-код анализируется, чтобы классы и методы, на которые нет ссылок из сценариев можно удалить из библиотек DLL и тем самым исключить из фазы компиляции AOT. Эта оптимизация уменьшает размер основного двоичного файла и сопутствующих библиотек DLL и является безопасной, если не используется отражение.

  2. Уровень Strip ByteCode: все библиотеки DLL .NET (хранящиеся в папке Data) удаляются только до метаданных. Это возможно, потому что весь код уже предварительно скомпилирован на этапе AOT и связан с основным двоичным файлом.

  3. Использовать уровень micro mscorlib: используется специальная, уменьшенная версия mscorlib. Из этой библиотеки удалены некоторые компоненты, например Security, Reflection.Emit, Remoting, негригорианские календари и т. д. Также минимизированы взаимозависимости между внутренними компонентами. Эта оптимизация уменьшает основной двоичный файл и размер mscorlib.dll, но несовместима с некоторыми классами сборки System и System.Xml, поэтому используйте ее с осторожностью.

Эти уровни являются кумулятивными, поэтому оптимизация уровня 3 неявно включает уровни 2 и 1, а оптимизация уровня 2 включает уровень 1.

Обратите внимание, что Micro mscorlib — это сильно урезанная версия основной библиотеки. Остаются только те элементы, которые требуются среде выполнения Mono в Unity. Лучшая практика использования micro mscorlib — не использовать какие-либо классы или другие функции .NET, которые не требуются вашему приложению. GUID — хороший пример того, что можно опустить; их можно легко заменить пользовательскими псевдо-GUID, что приведет к повышению производительности и увеличению размера приложения.

Зачистка с помощью IL2CPP

Для получения дополнительной информации см. документацию по управляемому удалению байт-кода с помощью IL2CPP

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

Простой контрольный список, чтобы сделать ваш дистрибутив как можно меньше

  1. Минимизируйте свои активы: включите сжатиеметод хранения данных, который уменьшает требуемый объем дискового пространства. См. Сжатие текстур, Сжатие анимации, Сжатие звука< /a>, Сжатие компоновки.
    Посмотрите в Словарь
    текстуры и по возможности уменьшите их разрешение. Кроме того, сведите к минимуму количество несжатых звуков. здесь есть несколько дополнительных советов по уменьшению размера файла.
  2. В Mono установите для параметра Уровень разделения iOS значение Использовать micro mscorlib или IL2CPPРазработанный Unity сервер сценариев, который можно использовать в качестве альтернативы Mono при создании проектов для некоторых платформ. Подробнее
    См. в Словарь
    включить Удалить код двигателя.
  3. Установите для уровня оптимизации вызовов скриптов значение Быстро, но без исключений.
  4. Не используйте в своем коде ничего из библиотеки System.dll или System.Xml.dll. Эти библиотеки не совместимы с micro mscorlib.
  5. Удалите ненужный код зависимостиВ контексте диспетчера пакетов зависимость – это конкретная версия пакета (выраженная в форме имя_пакета@версия_пакета), которые необходимы проекту или другому пакету для работы. Проекты и пакеты используют атрибут dependencies в своих манифестах для определения набора требуемых пакетов. Для проектов это считается прямой зависимостью; для пакетов это косвенные или транзитивные зависимости. Подробнее
    См. в Словарь
    .
  6. Установите для уровня совместимости API значение Подмножество .Net 2.0. Обратите внимание, что подмножество .Net 2.0 имеет ограниченную совместимость с другими библиотеками.
  7. Избегайте универсальных контейнеров в сочетании с типами значений, включая структуры.

Насколько маленьким можно сделать приложение с помощью Unity?

Пустой проект занял бы менее 22 МБ в App Store, если бы все оптимизации размера были отключены. При удалении кода пустая сценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Смотрите в Словарь
только с основным камераКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
See in Словарь
можно уменьшить до 12 МБ в App Store ( заархивирован и приложен DRM).

Почему мое приложение увеличилось в размере после публикации в App Store?

При публикации вашего приложения служба Apple App Store сначала шифрует двоичный файл, а затем сжимает его с помощью zip-архива. Шифрование увеличивает «случайность» сегмента кода и, таким образом, ухудшает его сжатие. Ознакомьтесь с главой «Создание для распространения» выше, чтобы узнать, как оценить размер App Store перед отправкой.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3