Сборка Unity-приложения для Android чаще всего останавливается на одном и том же месте: кнопка Build выдаёт ошибку «Android SDK not found» или «Gradle build failed», хотя сам проект в редакторе работает без сбоев. Причина почти всегда в неправильно установленном модуле Android Build Support или в конфликте версий SDK, JDK и Gradle, которые Unity подтягивает автоматически.
Эта статья разбирает полный цикл: от установки необходимых компонентов до подписанного файла AAB для Google Play. Материал подойдёт как тем, кто собирает первое мобильное приложение, так и разработчикам, столкнувшимся с ошибками сборки после обновления редактора.
Установка Android Build Support и необходимых инструментов
Unity не собирает Android-проекты «из коробки» — требуется отдельный модуль. Откройте Unity Hub, перейдите на вкладку Installs, нажмите на шестерёнку рядом с вашей версией редактора и выберите Add Modules. В списке отметьте Android Build Support, а внутри него — Android SDK & NDK Tools и OpenJDK.
Если модуль уже стоит, но сборка падает, проверьте пути к инструментам вручную. В редакторе откройте Edit → Preferences → External Tools и убедитесь, что стоят галочки напротив JDK, Android SDK и NDK installed with Unity. Снятие галочек имеет смысл только если вы осознанно используете собственные версии инструментов.
- 📦 Android Build Support — базовый модуль платформы, без него пункт Android недоступен в Build Settings.
- 🛠️ SDK & NDK Tools — инструменты компиляции и нативного кода, ставятся вместе с редактором.
- ☕ OpenJDK — Java-окружение, необходимое для работы Gradle.
- 🔁 После установки модулей перезапустите редактор, иначе пути могут не подхватиться.
⚠️ Внимание: смешивание SDK из Unity и отдельно установленного Android Studio — частый источник конфликтов версий. Если сборка внезапно сломалась после обновления Android Studio, вернитесь на инструменты, поставляемые с Unity.
Переключение платформы и настройка проекта
Откройте File → Build Settings, выберите в списке Android и нажмите Switch Platform. Процесс реимпорта ассетов может занять заметное время на большом проекте — это нормально, прерывать его не нужно.
Далее перейдите в Edit → Project Settings → Player и выберите вкладку с иконкой Android. Здесь задаются ключевые параметры будущего приложения.
- 🏷️ Product Name и Company Name — имя приложения и разработчика, видны пользователю.
- 🆔 Package Name (Application ID) вида
com.company.appname— уникальный идентификатор, после публикации в Google Play изменить его нельзя. - 🔢 Version и Bundle Version Code — версия для пользователей и внутренний номер сборки, который должен расти с каждым релизом.
- 📱 Minimum API Level — минимальная версия Android; слишком низкое значение расширяет аудиторию, но усложняет поддержку.
Package Name нельзя изменить после первой публикации в Google Play — магазин будет считать приложение с другим идентификатором совершенно новым продуктом. Проверьте его до первой загрузки.
Выбор формата сборки: APK или AAB
Для тестирования на своём устройстве достаточно APK — файл можно просто скопировать на телефон и установить. Для публикации в Google Play требуется формат AAB (Android App Bundle): магазин сам генерирует из него оптимизированные APK под конкретные устройства пользователей.
| Критерий | APK | AAB |
|---|---|---|
| Установка на устройство напрямую | Да | Нет |
| Загрузка в Google Play | Ограничена | Основной формат |
| Оптимизация размера под устройство | Нет | Да |
| Типовое применение | Локальное тестирование | Релиз |
Чтобы собрать AAB, в окне Build Settings отметьте галочку Build App Bundle (Google Play) перед нажатием Build. Для тестовой сборки галочку снимите — получите обычный APK.
Подпись приложения: создание keystore
Google Play принимает только подписанные сборки. Подпись создаётся через файл keystore — хранилище ключей разработчика. В Unity это настраивается в Project Settings → Player → Publishing Settings.
Нажмите Keystore Manager, выберите Create New → Anywhere и заполните поля: пароль хранилища, алиас ключа, пароль ключа и данные организации. После сохранения выберите созданный ключ в выпадающих списках Project Keystore и Project Key.
☑️ Перед релизной сборкой проверьте
⚠️ Внимание: потерянный keystore без включённого Play App Signing означает невозможность обновлять опубликованное приложение — придётся публиковать его заново как новое. Храните файл ключа и пароли в нескольких резервных копиях.
Типичные ошибки сборки и их решение
Самая частая группа проблем — ошибки Gradle. Текст в консоли обычно длинный, но ключевая строка находится ближе к концу лога: ищите строки со словами error или failed, а не первое попавшееся сообщение.
Если сборка зависает или падает без явной причины, попробуйте очистить кэш: закройте проект и удалите папку Library в корне проекта — Unity пересоздаст её при следующем запуске. Это безопасно, но первый запуск после очистки будет долгим. Также помогает переключение системы сборки: в Publishing Settings есть опции кастомного Gradle-шаблона, но без понимания их работы включать их не стоит.
Отдельный случай — ошибки, связанные с Minify и ProGuard при релизной сборке. Если релизная версия падает, а debug работает, временно отключите минификацию в Publishing Settings и проверьте, исчезла ли проблема. Если да — причина в правилах обфускации, которые удаляют нужные классы.
Где смотреть подробный лог ошибок сборки
Полный лог редактора Unity находится в файле Editor.log. На Windows он лежит в папке %LOCALAPPDATA%\Unity\Editor, на macOS — в ~/Library/Logs/Unity. Откройте файл после неудачной сборки и ищите блок Gradle или первую строку с ERROR — там обычно указана реальная причина, а не следствие.
Тестирование на реальном устройстве
Эмулятор не показывает реальную производительность, особенности сенсорного ввода и поведение на конкретном железе, поэтому финальную проверку проводите на физическом смартфоне. Для этого на устройстве нужно включить режим разработчика и отладку по USB: точный путь зависит от оболочки производителя, обычно это раздел «О телефоне» с многократным нажатием на номер сборки, после чего в настройках появляется пункт для разработчиков.
Подключите телефон кабелем, подтвердите запрос на разрешение отладки на экране устройства и в Build Settings нажмите Build And Run — Unity соберёт APK и сразу установит его на подключённый аппарат. Если устройство не определяется, проверьте кабель (часть кабелей передаёт только питание), драйверы и разрешение отладки на самом телефоне.
Публикация в Google Play
Для загрузки приложения потребуется аккаунт разработчика в Google Play Console. После регистрации создайте новое приложение, заполните название и язык по умолчанию, затем перейдите к созданию релиза: загрузите подписанный AAB, заполните описание, скриншоты, значок и возрастной рейтинг.
Перед открытым релизом разумно пройти через закрытое или внутреннее тестирование — так вы проверите установку и работу приложения именно через инфраструктуру магазина, а не прямой установкой файла. Сроки проверки релиза модерацией заранее не гарантируются, поэтому не планируйте анонсы на день отправки сборки.
Часто задаваемые вопросы
Можно ли собрать Android-приложение в Unity без Android Studio?
Да. Модуль Android Build Support в Unity Hub ставит собственные SDK, NDK и JDK, и отдельная установка Android Studio не требуется. Она нужна только для специфических задач вроде отладки нативного кода.
Почему кнопка Build неактивна или платформы Android нет в списке?
Значит, для вашей версии редактора не установлен модуль Android Build Support. Откройте Unity Hub → Installs → шестерёнка у версии редактора → Add Modules и доустановите модуль, затем перезапустите редактор.
APK устанавливается, но приложение вылетает при запуске. Что проверить?
Сначала подключите устройство и посмотрите логи через консоль или инструменты отладки. Частые причины — неподдерживаемый Minimum API Level, отсутствующие разрешения, ошибки минификации в релизной сборке или код, который работает в редакторе, но не на устройстве.
Можно ли изменить Package Name после публикации?
Нет. Google Play жёстко привязывает приложение к идентификатору пакета. Смена Package Name означает публикацию нового приложения с нуля, без переноса пользователей, отзывов и статистики.
Что делать, если keystore утерян?
Если в Play Console был включён Play App Signing, ключ загрузки можно сбросить через поддержку Google. Если нет — обновлять приложение не получится, останется только публиковать его заново под новым пакетом. Именно поэтому резервные копии keystore критичны.