Подтвердить что ты не робот

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

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

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

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

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

buildTypes {
    debug {
        signingConfig signingConfigs.nexus4
    }
}

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

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

4b9b3361

Ответ 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
    }
}