Конфигурация отладки для отладки продукта

У меня есть проект, в котором у меня есть несколько продуктов, специфичных для устройства, и каждый вкус должен быть подписан с другой конфигурацией:

productFlavors { nexus7 { signingConfig signingConfigs.nexus7 } nexus4 { signingConfig signingConfigs.nexus4 } } 

Это отлично работает при создании варианта «выпуска». Однако при использовании варианта «debug» (например, при создании Nexus4Debug) Gradle использует стандартный отладочный ключ Android. В моем случае я сильно зависим от того, что эти сборки подписаны правильно, и мое приложение относительно бесполезно, если подписано с ключом отладки по умолчанию. Кто-нибудь знает, есть ли способ указать конфигурацию подписания для каждого варианта?

Я знаю, что могу сделать это для каждого типа сборки, a la:

 buildTypes { debug { signingConfig signingConfigs.nexus4 } } 

Но это ограничивает меня тем, что всегда использует один и тот же конфиг для создания отладочных сборников обоих вкусов.

PS – Поймите, что здесь немного используется край. Это для корпоративного проекта, где мы тестируем пользовательские ПЗУ и приложения, подписанные системой, на нескольких устройствах Nexus.

Solutions Collecting From Web of "Конфигурация отладки для отладки продукта"

Попробуйте добавить это в свой build.gradle . Он будет указывать, какой signingConfig использовать для каждого flavor при построении типа сборки debug :

 buildTypes { debug { productFlavors.nexus4.signingConfig signingConfigs.nexus4 productFlavors.nexus7.signingConfig signingConfigs.nexus7 } } 

Я получил еще одно решение после сборки плагина 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

Работает над 2.2.1

 buildTypes { release { } debug { signingConfig android.buildTypes.release.signingConfig } }