본문 바로가기
My Image
프로그래밍/Android

[Android] Android Gradle 버전별 Build Setting 정리

by Lim-Ky 2017. 5. 19.
반응형

이번 포스트는 하나의 프로젝트에서 여러 버전의 앱을 빌드하고 릴리즈하는 방법을 소개하려합니다

.

*왜 여러 버전의 앱을 빌드하는 방법을 알아야하는지???

  그 이윤 간단합니다. 여러목적으로 동일한 앱을 빌드해야 할 경우가 생긴다면, 매번 소스코드를 수정하고 빌드하는 작업의 번거로움을 없애   기 위해서 입니다.


우선 안드로이드 스튜디오로 개발한다는 전제하에 설명하도록 하겠습니다.

안드로이드 스튜디오로 프로젝트를 만들면, 기본적으로 2가지 빌드타입(Build Type)으로 Debug,Release가 있습니다.



이 2가지 빌드타입에 대한 설명은 아래에서 한번 더 알아보도록하겠습니다.



이와 별개로 같은 앱이지만, 무료(free),광고(ads),유료(paid)등 동일한 앱의 서로 다른 버전이 있을 수 있습니다. 또 동일한 앱이지만, 색상,디자인,컨텐츠 등 리소스가 다를 수 있습니다. 이러한 것을 플레이버(Product flavor)라고 부릅니다.



위에서 설명드린 Build Type과 Product flavor의 조합으로 만들어지는 것이 있는데 이것을 배리언트(Build Varients)라고 합니다.

플레이버가 3가지(무료,광고,유료),빌드타입이 2가지(디버그,릴리즈)가 있다고 했고, 이것을 조합한 배리언트는 총 6가지(디버그 무료, 디버그 무료, 디버그 광고, 릴리즈 광고, 디버그 유료, 릴리지 유료)입니다.



여기까지 잘 이해하셨을 거라 생각합니다.





그럼 아까 빌드타입에 종류 2가지가 뭐라고했죠? 디버그와 릴리즈라고 했습니다!


그런데 실제 빌드하는 작업이외에 어떤 특별한 작업없이 빌드한 apk실행하면 app/build/outputs 폴더에 Debug-apk가 떨어지고,

디바이스에서 실행도 잘됩니다. 하지만 릴리즈 타입은 별도의 작업을 하지 않으면 실행되지 않습니다.



그럼 별도의 작업을 해야겠죠? 그것이 바로 Signing입니다. 그럼 이제 release-apk로 배포하기 위해 Signing작업을 해보겠습니다.



build.gradle에 가서 아래와 같이 여러버전의 signingConfigs를 정의해주시면 됩니다. 안드로이드 스튜디오에서 UI적인 방법으로 키를 만들수 있지만, 저는 이렇게 코드로 복붙해서 입맛대로 바꾸는 방법을 선택했습니다. 



버전을 나누는 기준은 개발과 배포, 무료와 유료, 국가별, 프로젝트별, 용도별 등등 다양합니다.


저는 개발(dev), 광고(ads), 유료(paid) 로 나누겠습니다.


apply plugin: 'com.android.application'

android {
signingConfigs {
dev{
keyAlias 'dev'
keyPassword '123qweasd'
storeFile file('C:/work/keyStore/version1.key.jks')
storePassword '123qweasd'
}
ads{

keyAlias 'ads'
keyPassword '123456789'
storeFile file('C:/work/keyStore/version2.key.jks')
storePassword '123456789'
}
paid{
keyAlias 'paid'
keyPassword 'edededed'
storeFile file('D:/work/keyStore/version3.key.jks')
storePassword 'edededed'
}
}



반응형

댓글