티스토리 뷰

안드로이드 개발에 대한 이야기를 잠시 하려고 합니다.


이전에는 플래그를 이용하여서 빌드 환경을 변경하면서 빌드를 빼주고 하는 작업들을 하였는데요.

이렇게 할 경우에는 휴먼 오류가 발생하게 됩니다.


뭐 예를 들자면 플래그를 제대로 변경하지 않고 이것을 빌드하여주거나 실제로 저도 테스트 서버를 바라보는 빌드를 배로한적도 있습니다.


정말 아찔한 순간이죠. ㅎ


그래서 이러한 부분들을 없애기 위해서 세팅은 그대로 두고 이것을 그냥 이용하기만 하는 방법으로 개발을 하는것이 좋을것 같습니다.


gradle 설정으로 이런것들을 쉽게 할수 있습니다.

오늘은 이것을 한번 이야기 해볼까 합니다.



gradle 버전에 따라서 잘 안될수도 있으므로 지금 저의 버전은 3.4.1 입니다.

최근 얼마동안의 기간동안 이 설정으로 안되지는 않았습니다.

버전을 보시려면 project의 build.gradle 파일을 열어보시면 됩니다.


일단 하는 방법은 너무나도 쉽습니다.


1. build.gradle 파일을 수정하여 줍니다.


Module: app 의 build.gradle 파일을 열어줍니다.

혹시 없으시다고요? 이름을 변경하신 분들이 있을수도... 그러면 메인을 열어주신다고 생각하시면 됩니다.


제가 지금 사용하는 환경은 이렇습니다.


1
2
3
4
5
6
7
8
9
productFlavors {
    google_real {
        versionName '2.0.0'
    }
    google_dev {
        applicationIdSuffix ".dev"
        versionName '2.0.1'
    }
}
cs


두가지 설정을 사용할것인데요. real과 dev입니다.


자 그럼 이것을 어디에 넣어야 하는가...


아까 제가 위쪽에 열으라고 했던 build.gradle 파일의 android {} 안에 넣어줍니다.


그리고 혹시라도 폴더를 변경하고 싶으시다면 다음과 같이 설정하여 줍니다.


1
2
3
4
5
6
7
8
9
10
sourceSets {
    google_real {
        java.srcDirs = ['src/main/java', 'src/real/java']
        res.srcDirs = ['src/main/res', 'src/real/res']
    }
    google_dev {
        java.srcDirs = ['src/main/java', 'src/dev/java']
        res.srcDirs = ['src/main/res', 'src/dev/res']
    }
}
cs


각각 따로 설정할 필요가 없다고 한다면 기본적으로 main의 것을 가져오게 되고, 폴더 이름을 flavor 이름을 따라가게 됩니다.


2. Project에서 폴더를 만들어주세요.



왼쪽편에 Android라고 되어 있는것 있죠? 아시는분들은 아시겠지만 이것을 누르면 Project가 나옵니다.



이렇게 최종적으로 나와야 하는데 안나와 있을겁니다.


아마도 main만 있으실 가능성이 높고요.


그렇다면 main위에 마우스를 하시고 복사해서 붙여넣기를 연속으로 해주세요.


그럼 Copy 창이 하나뜨면서 New name에 우리가 원하는 이름을 넣어줍니다.


여기서는 google_dev와 google_real이 되겠죠?


그리고 나면 파일을 따로 생성을 할 수 있을 겁니다.


3. 설정 파일을 따로 만들기


1
2
3
4
5
6
app
▼ src
  ▼ google_dev
    ▼ java
      ▼ com.dh.test
        ∟ Environment.kt
cs


거의 이런 모양일텐데요. 저희가 Environment 파일을 만들어 줄겁니다.


1
2
3
4
5
class Environment {
    companion object {
        const val server = Server.dev
    }
}
cs


자 무슨 의미인지 아시겠죠?

일단 서버의 값은 main에 두고 server 변수를 참조해서 API 서버 설정이나 Web 서버 설정을 하는것입니다.


같은 방법으로 google_real에도 동일하게 만들어 줍니다.


4. 빌드 설정 변경하면서 사용하기



왼쪽 오른쪽에 보면 build variants에 자신이 선택하고 싶은 빌드 방법을 이용합니다.

기본적으로 Debug를 이용하여 개발을 하고 Release를 이용하여 배포를 합니다.

디버그등에 용이하겠죠?


5. 한번에 빌드 배포하여 QA에 전달


이번에는 오른쪽 부분을 보면 Gradle이 존재합니다.


그곳에서 :app 아래의 build 아래의 assembleRelease로 빌드를 한번에 할수 있습니다.


산출물은 프로젝트 폴더의 app/build/outputs/apk 아래에 flavor에 설정한 이름으로 생성이 됩니다.


주니어시절의 실수해서 망하는 저같은 실수는 하지 말아주세요.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함