개인적으로 서버 URL이나 API KEY 등이 외부에 노출되는 것을 꺼리는데,
서버 URL이나 API KEY를 소스 코드에 그대로 작성하고 프로젝트를 GitHub에 업로드하면 그대로 노출되기 때문에 이는 따로 관리해주는게 좋다.
해당 게시글에선 서버 URL를 예시로 사용한다.
local.properties를 통해 안전하게 보관하기
1. local.properties 작성
// local.properties
sdk.dir = Sdk 경로
base.url = "서버의 주소"
- 위와 같이 local.properties를 작성해준다.
- (sdk 경로는 미리 작성 되어 있을 것이므로 건드리지 않아도 된다.)
2. build.gradle 수정
2-1 Groovy인 경우
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
android {
defaultConfig {
buildConfigField "String", "BASE_URL", properties["base.url"]
}
}
2-2 Kotlin-DSL인 경우
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
android {
defaultConfig {
buildConfigField("String", "BASE_URL", getApiKey("base.url"))
}
}
fun getApiKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
3. 프로젝트 빌드
- 프로젝트 한 번 빌드하고 나면 BuildConfig.java에 local.properties에 추가했던 변수가 생성된다.
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.example.toothfairy";
public static final String BUILD_TYPE = "debug";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
// Field from default config.
public static final String BASE_URL = "추가한 서버 주소";
}
4. 변수 사용하기
- 이젠 아래와 같이 BASE_URL을 불러 사용할 수 있다.
- 더 이상 소스 코드에 서버 URL이나 API KEY가 노출되지 않아 안전하다.
private const val BASE_URL = BuildConfig.BASE_URL
'안드로이드 > 이론' 카테고리의 다른 글
[ 안드로이드 ] Handler를 통한 Viewmodel 변수 상태 체크하기 (0) | 2023.03.21 |
---|---|
[ 안드로이드 ] 해상도 대응, 다양한 화면 크기 지원 (0) | 2023.01.31 |
[ 안드로이드 ] Fragment Add시 밑의 Fragment 클릭되는 문제 (0) | 2022.11.16 |
[ 안드로이드 ] Livedata Observer 등록하자 마자 호출되는 경우 or 중복 호출 (0) | 2022.11.14 |
[ 안드로이드 ] BottomSheetDialog에서 Fragment로 값 전달 (0) | 2022.10.03 |