Gradle에서 APK 생성 타입 설정하기
회사에서 apk를 추출하는데 자동으로 이름이 생성이 되고, 직접 폴더를 만들어 그 폴더에도 저장이 된다.
gradle에 해당 코드가 있었고, 찾아보니 gradle을 통해 설정할 수 있는 기능이었다.
1. apk 생성 시 빌드타입, 날짜, 버전명 자동 기입
build.gradle (:app)
android {
...
buildTypes {
...
applicationVariants.all { variant ->
variant.outputs.all {
def name = parent.project.getName()
def buildType = variant.buildType.name
def versionName = variant.versionName
outputFileName = new File("${name}_${buildType}_${versionName}.apk")
}
}
}
}
- applicationVarients 객체는 각 빌드 변형의 내부 속성을 참조할 수 있음
- outputFileName은 assemble 태스크 결과로 생성되는 APK 파일의 파일명을 의미함
2. 생성된 apk를 특정 폴더로 복사
build.gradle (:app)
android.applicationVariants.all { variant ->
variant.outputs.all {output ->
// 1번과 이어짐
outputFileName = new File("${name}_${buildType}_${versionName}.apk")
def taskSuffix = variant.name.capitalize()
def assembleTaskName = "assemble$taskSuffix"
if (tasks.findByName(assembleTaskName)) {
// (=) def copyAPKFolderTask = tasks.create("archive$taskSuffix", Copy) {
def copyAPKFolderTask = tasks.create(name: "archive$taskSuffix", type: org.gradle.api.tasks.Copy) {
from buildDir
into "{복사를 원하는 위치}"
include parent.name + ".apk"
}
tasks[assembleTaskName].finalizedBy = [copyAPKFolderTask]
}
}
}
'Android > Android 기초' 카테고리의 다른 글
[Android/Basic]BaseActivity (0) | 2023.02.24 |
---|---|
[Android/Basic]Fragment Life Cycle (프래그먼트 생명 주기) (0) | 2021.07.24 |
[Android/Basic]Activity Life Cycle (액티비티 생명 주기) (0) | 2021.07.23 |
[Android/Basic]위치 퍼미션 (권한 설정) (0) | 2021.07.15 |
[Android/Basic]strings.xml이란?(문자열 리소스) (0) | 2021.06.09 |