내가 지금 작업하고 있는 프로젝트는 개발/운영 환경의 url을 개발자가 '직접' 바꾸어 배포를 진행해야 했다.
회사에서는 빌드 환경에 따라 상수가 분리되어 있어 Build Variants만 바꾸면 해당 환경으로 실행이 가능했는데,,,
배포 시마다 내가 혹시나 개발 url로 올려버리지는 않을까 불안에 떨고는 했다.
이번에 앱 배포 관련 작업을 하면서 해당 부분도 환경을 분리하여 개선할 수 있는 시간이 주어져서 !! 작업을 진행했고, 결과적으로는 30분의 작업이 내 앞으로의 작업 환경을 너무나 쾌적하게 만들어 주었다 😎
1. Build Type이란
프로젝트를 생성하면 기본적으로 debug, release 두 개의 BuildTypes이 설정되어 있다.
debug는 기본적으로 debuggable true 설정이 되어 있어, 앱의 디버깅이 가능하며 signing key가 없어도 실행이 가능하다.
반면, release는 debuggable false 상태이기에 디버깅이 불가하며, signing key가 있어야 실행이 가능하다. 뿐만 아니라 난독화와 축소 관련 설정들도 기본으로 되어 있다.
기본적으로는 defaultConfig의 내용을 따르고, 각 빌드 환경에 따라 정의된 내용이 override해서 값이 지정된다.
2. build.gralde에 Build Type 추가
내가 설정해 준 값들은 아래와 같다.
applicationSuffix | applicationSuffix '.dev' --> 'com.example.app.dev'
|
resValue | resValue('string', 'app_name', '앱이름_dev')
|
buildConfigField | buildConfigField 'String', 'BASE_URL', properties['base.url']
|
여기서 BuildConfig를 사용하려면 활성화되어 있는지 미리 확인해야 한다
buildFeatures{
buildConfig=true
}
3. 환경 별 properties 관리
나는 local.properties를 하나로 사용하여 BuildConfigField를 직접 지정해 주었다.
하지만 환경 별로 properties를 구분하고, 해당 properties를 전부 읽어 BuildConfig에 추가해주는 방식으로도 구현하는 것 같았다.
(나는 혹시라도 기존 서비스에 영향이 갈까봐 그렇게 바꾸지는 않았지만, 나중에 프로젝트를 한다면 이렇게 설정하고 싶다!)
https://sg-choi.tistory.com/522
작업은 진짜 30분?! 얼마 걸리지 않았는데, 이 작은 변화가 나에게는 너무나 쾌적한 작업 환경을 만들어 주었다.
매번 배포 때마다 실수로 url을 잘못 체크하지는 않았을까... 불안함에 떨었는데 이제 그럴 일은 없다 😃
다음은 Fastlane으로 PlayStore, Firebase App Distribution에 앱 배포 자동화 설정을 한 과정을 담아보려고 한다!
'💻 Android' 카테고리의 다른 글
[Android] Android CI/CD 구축하기 (3) - Fastlane + Firebase App Distribution, PlayStore + Slack (0) | 2024.05.25 |
---|---|
[Android] Android CI/CD 구축하기 (1) - Firebase App Distribution, Play store 테스트 트랙 (0) | 2024.05.25 |
[Android] Android 13 마이그레이션 (0) | 2024.03.09 |
[Android/IOS] 인앱 리뷰 기능 추가하기 (2) | 2023.09.23 |
[Android] 인스타그램 DM으로 공유하기 기능 만들기 (0) | 2023.09.23 |