Как стать автором
Обновить

Комментарии 7

Спасибо, ничего нового не узнал.
именуем релизный апк:
applicationVariants.all { variant ->
        variant.outputs.each { output ->
            if (variant.buildType.name == "release") {
                def vCode = variant.versionCode
                if (vCode < 10)
                    vCode = "0" + vCode

                def date = new Date()
                def formattedDate = date.format('yyyyMMddHHmm')

                output.outputFile = new File(
                        output.outputFile.parent,
                        variant.productFlavors[0].name + "_c${vCode}_" + formattedDate + ".apk")
            }
        }
    }

Статья неплохая. Но мне кажется мало кто будет искать справку по gradle на хабре. Более перспективным для этого документация на stackoverflow. Вам не кажется?
P.S. у меня там больше рейтинг, я бы вам обязательно плюс поставил)

Спасибо, не знал об этом новом разделе. К сожалению, я не настолько уверен в своем английском, что бы писать англоязычные статьи.
allprojects {
   it.extensions.add("buildSystemDir", "$rootProject.projectDir/buildSystem/")
}


it.extentsions.add? То ли я ничего не понимаю то ли это делается куда проще — project.ext, как советуют в документации

ext {
   buildSystemDir = "$rootProject.projectDir/buildSystem/"
}

task getMyProp << { logger.quiet "i am prop  buildSystemDir: $buildSystemDir"  }


И это распространяется на подпроекты тоже…
Откуда вы взяли такую страшненькую конструкцию?
В статье, ссылку на которую я дал в начале как раз и используют такой подход, как вы написали.

it.extensions в данном примере действительно избыточен, он полезен тогда, когда необходимо указать тип добавляемого расширения.
Применяю следующий способ подписи APK файлов

Создаем в папочку
project/app/scripts

Туда кладем дополнительные gradle-скрипты и, в частности, скрипт для подписи приложения:
release.gradle
android {
    signingConfigs {
        release {
            storeFile file("my_keystore.jks")
            storePassword "some_pass"
            keyAlias "alias_name"
            keyPassword "another_pass"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}


Далее, подключаем скрипты из папочки scripts в build.gradle для приложения (/app/build.gradle)
fileTree('scripts').each { apply from: "${it}" }


Для безопасности добавляем соотв. скрипт и jks файл в git исключения:
# release sign info
*.jks
app/scripts/release.gradle
Зарегистрируйтесь на Хабре, чтобы оставить комментарий