Конфигурация подписи отладки на Gradle Продукт Flavors
У меня есть проект, в котором у меня есть несколько специфических для продукта продуктов, и каждый вкус должен быть подписан с другой конфигурацией:
productFlavors {
nexus7 {
signingConfig signingConfigs.nexus7
}
nexus4 {
signingConfig signingConfigs.nexus4
}
}
Это отлично работает при создании варианта выпуска. Однако при использовании варианта "debug" (например, при создании Nexus4Debug) Gradle использует стандартный отладочный ключ для Android. В моем случае я сильно зависим от того, что эти сборки подписаны правильно, и мое приложение относительно бесполезно, если подписано с дефолтным ключом по умолчанию. Кто-нибудь знает, есть ли способ указать конфигурацию подписи для каждого варианта?
Я знаю, что могу сделать это для каждого типа сборки, a la:
buildTypes {
debug {
signingConfig signingConfigs.nexus4
}
}
но это ограничивает меня тем, что всегда использует один и тот же файл конфигурации для отладочной сборки обоих вариантов.
PS - Поймите, что здесь немного используется край. Это для корпоративного проекта, где мы тестируем пользовательские ПЗУ и приложения, подписанные системой, на нескольких устройствах Nexus.
Ответы
Ответ 1
Попробуйте добавить это к build.gradle. Он укажет, какой signingConfig
использовать для каждого flavor
при построении типа сборки debug
:
buildTypes {
debug {
productFlavors.nexus4.signingConfig signingConfigs.nexus4
productFlavors.nexus7.signingConfig signingConfigs.nexus7
}
}
Ответ 2
У меня появилось другое решение после сборки плагина для Android. 1.1.3
productFlavors {
nexus7 {
signingConfig signingConfigs.nexus7
}
nexus4 {
signingConfig signingConfigs.nexus4
}
}
buildTypes {
release {
debuggable false
zipAlignEnabled true
}
debug {
initWith release
debuggable true
zipAlignEnabled false
}
}
В качестве типа сборки "release" будет использоваться конфиг конфига (например, нет спецификации), после отладки init с версией сборки он также будет иметь тот же конфигурационный файл для подписания.
Тип сборки "debug" должен быть инициализирован с "выпуском", как если бы не была подписана конфиг, он будет использовать ключ для отладки по умолчанию для Android.
Обновление
Проблема в том, что файл android.buildTypes.debug.signingConfig имеет значение по умолчанию, а релиз - нет.
Решение может быть повреждено в будущем.
В любом случае, по-прежнему работайте с плагином Android 2.3.2
Ответ 3
Работает на 2.2.1
buildTypes {
release {
}
debug {
signingConfig android.buildTypes.release.signingConfig
}
}