Я пытаюсь добавить пользовательскую задачу в свой проект Android build.gradle, чтобы скопировать окончательный APK и Proguard mapping.txt в другой каталог. Моя задача зависит от задачи assembleDevDebug:
task publish(dependsOn: 'assembleDevDebug') << {
description 'Copies the final APK to the release directory.'
...
}
Я могу посмотреть, как сделать копию файла, используя стандартный тип задачи Copy, согласно документам:
task(copy, type: Copy) {
from(file('srcDir'))
into(buildDir)
}
но предполагается, что вы знаете имя и расположение файла, который хотите скопировать.
Как найти точное имя и расположение файла APK, который был создан как часть задачи assembleDevDebug? Является ли это доступным как собственность? Мне кажется, что я могу объявить файлы в качестве исходных данных для моей задачи и объявить их как выходы из задачи assemble, но мой Gradle -fu недостаточно силен.
У меня есть специальная логика для ввода номера версии в имя файла APK, поэтому моя задача publish не может просто предполагать имя и местоположение по умолчанию.