Шаблоны Gradle настраивают способ создания приложения Android с помощью Gradle Система сборки Android, которая автоматизирует несколько процессов сборки. Эта автоматизация означает, что вероятность возникновения многих распространенных ошибок сборки снижается. Подробнее
См. в Словарь. Каждый шаблон Gradle представляет собой один проект Gradle. Проекты Gradle могут включать в себя другие проекты Gradle и зависеть от них.
Файлы шаблонов Gradle
Шаблон Gradle состоит из следующих файлов:
Файл | Местоположение | Содержит |
---|---|---|
baseProjectTemplate.gradle |
In the exported project, root/build.gradle folder |
Информация о конфигурации, влияющая на все модули в окончательном проекте Gradle. Он указывает, какую версию плагина Android Gradle использовать, и расположение java-плагинов. Места представляют собой комбинацию онлайн-репозиториев и java-плагинов внутри этого проекта. |
launcherTemplate.gradle_ |
In the exported project, root/launcher/build.gradle folder |
Инструкции по сборке приложения для Android. Это включает в себя объединение, подписание и необходимость разделения apkформата пакета Android, выдаваемого Unity. APK автоматически развертывается на вашем устройстве, когда вы выбираете «Файл» > «Сборка и запуск». Подробнее См. в Словарь. Это зависит от проекта unityLibrary и выводит либо файл .apk, либо пакет приложений. |
mainTemplate.gradle |
In the exported project, root/unityLibrary/build.gradle folder |
Инструкции по сборке Unity как библиотеки. Это выводит файл .aar. Вы можете переопределить шаблон Unity с помощью пользовательского шаблона в редакторе Unity. Дополнительные сведения см. в разделе Предоставление пользовательского шаблона сборки Gradle на этой странице. |
libTemplate.gradle |
Varies | Если Проект библиотеки Android подключаемый модульНабор кода, созданного вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее См. в Словарь не включает build.gradle , Unity использует файл libTemplate.gradle в качестве шаблона для его создания. После того как Unity создаст файл build.gradle или, если он уже существует в каталоге подключаемого модуля, Unity скопирует подключаемый модуль в проект Gradle. |
Использование пользовательского шаблона Gradle
Есть два файла .gradle
, которые управляют процессом сборки Gradle для модуля unityLibrary:
build.gradle
: указывает инструкции по сборке.settings.gradle
: содержит имена модулей, которые система сборки Gradle должна включать при сборке компонентов project.project в соответствии с инструкциями вфайл build.gradle
используется в процессе сборки.
сборка.gradle
Файл build.gradle
содержит переменные шаблона, которые определяют инструкции по сборке.
По умолчанию Unity использует файл mainTemplate.gradle
из каталога установки Unity для создания файла build.gradle
для модуль unityLibrary. Чтобы создать собственный файл mainTemplate.gradle
:
- Откройте окно настроек проекта (меню: Правка > Настройки проекта).
- Выберите вкладку Проигрыватель, затем откройте Настройки проигрывателя Android:
- В разделе Настройки публикации включите Пользовательский основной шаблон Gradle. Это создает файл шаблона Gradle с именем
mainTemplate.gradle
и отображает путь к файлу. Теперь Unity использует этот файлmainTemplate.gradle
для создания файлаbuild.gradle
. Список переменных шаблона и описание того, что каждая из них делает, см. в разделе переменные шаблона.
Переменные шаблона
Файл mainTemplate.gradle
может содержать следующие переменные:
Переменная | Описание |
---|---|
DEPS | Список зависимостейв контексте диспетчера пакетов зависимость — это конкретная версия пакета (выраженная в виде имя_пакета@версия_пакета ), которые требуются проекту или другому пакету для работы. Проекты и пакеты используют атрибут dependencies в своих манифестах для определения набора требуемых пакетов. Для проектов это считается прямой зависимостью; для пакетов это косвенные или транзитивные зависимости. ПодробнееСм. в Словарь. Это список библиотек, которые использует проект.. |
APIVERSION | Версия API для сборки. Unity устанавливает и TARGETSDKVERSION одно и то же значение (целевой уровень API в настройках проигрывателя Android). |
MINSDKVERSION | Минимальная версия API, поддерживающая приложение. |
BUILDTOOLS | Инструменты сборки SDK для использования. |
TARGETSDKVERSION | Целевая версия API. Unity устанавливает для параметров и APIVERSION одно и то же значение (Целевой уровень API в Настройках проигрывателя Android). |
APPLICATIONID | Идентификатор приложения Android. Например, com.mycompany.myapp. |
MINIFY_DEBUG | Указывает, следует ли минимизировать отладочные сборки. |
PROGUARD_DEBUG | Указывает, следует ли использовать ProGuard для минимизации в отладочных сборках. |
MINIFY_RELEASE | Указывает, нужно ли минимизировать сборки выпуска. |
PROGUARD_RELEASE | Указывает, следует ли использовать ProGuard для минификации в готовых сборках.. |
USER_PROGUARD | Указывает пользовательский файл ProGuard, который будет использоваться для минимизации. |
SIGN | Заполните раздел signingConfigs, если эта сборка подписана.. |
SIGNCONFIG | Указывает, подписана ли сборка. Если для этого свойства задано значение signingConfig.release , сборка подписывается. |
DIR_GRADLEPROJECT | Каталог, в котором Unity создает проект Gradle. |
DIR_UNITYPROJECT | Каталог вашего проекта Unity. |
settings.gradle
Файл settings.gradle
содержит компоненты проекта, используемые в процессе сборки.
По умолчанию Unity использует файл settingsTemplate.gradle
из каталога установки Unity для создания файла settings.gradle
для ваша сборка. Чтобы создать собственный файл settingsTemplate.gradle
, создайте файл settingsTemplate.gradle
в вашего проекта. Папка Assets/Plugins/Android/
. Это переопределяет шаблон по умолчанию.
Еслисоздаете собственный файл settings.gradle
, имейте в виду следующее:
- Unity создает компоненты
launcher
иunityLibrary
по умолчанию, и вы должны включить их в свойфайл settingsTemplate.gradle
. Для этого добавьтеinclude ':launcher', ':unityLibrary'
в качестве записи в свойsettingsTemplate.gradle
. ли> - Если вы используете подключаемые модули библиотеки Android, Unity включает их в окончательный файл
settings.gradle
, заменяя**INCLUDES**
запись. Это означает, что вы должны добавить**INCLUDES**
в качестве записи в свойsettingsTemplate.gradle
.
Изменение экспортированного проекта Gradle с помощью C#
Чтобы изменить проект Gradle после его сборки Unity, создайте класс, наследуемый от IPostGenerateGradleAndroidProject, и переопределите класс OnPostGenerateGradleAndroidProject. Эта функция получает путь к модулю unityLibrary в качестве параметра, и вы можете использовать его для доступа к манифесту и ресурсам приложения с помощью сценариев C#.
Предупреждение: Unity теперь использует инкрементный конвейер сборки, что означает, что Unity повторно использует один и тот же проект Gradle для последовательных сборок. Это означает, что любые изменения, которые вы делаете с помощью этого API, накапливаются, поскольку Unity больше не создает новый проект Gradle для каждой сборки. Например, если вы используете этот API для добавления дополнительного файла в проект Gradle, первая сборка работает должным образом, но во время второй сборки файл уже существует. Второй пример — если вы используете этот API для добавления разрешения на определенный файл. Каждая последующая сборка добавляет еще одну запись для разрешения. Крайне важно убедиться, что изменения, которые вы хотите внести, еще не присутствуют в сборке.