local.properties 파일은 안드로이드 프로젝트에서 사용되는 설정 파일입니다.
github에 올릴 때 보안이 필요한 정보(token or key) 노출을 하지 않기 위해서 local.properties를 사용하는데 원리는 다음과 같다. (참고로 local.properties 파일은 .gitignore 파일에 github에 업로드 되지 않도록 선언해야 하며 기본적으로 /local.properties 선언되어 있다. 또한 BuildConfig.java가 생성되는 bulid폴더도 .gitignore에 정의되어 있어야 하며 기본으로 정의되어 있다.)
- 안드로이드 프로젝트를 빌드할 때 Gradle 빌드 시스템에 의해 local.properties 파일을 load하여 BuildConfig(java 파일임 ) 만들어 관련 property 값을 field로 추가해 놓는다.
- 즉 java파일을 자동으로 하나 만들어 field값으로 추가한다.
- 관련 사항이 build.gradel 파일에 정의 되어야 한다는 뜻이다.
- field 는 public static final로 되어 있어서 객체를 생성하지 않고도 아래 처럼 바로 사용 할 수 있다.
BuildConfig.필드명
사용법
- project root 폴더에 local.properties 파일을 생성한다.
# BuildConfig.java 파일을 만드는데 사용될 걸로 보이는 SDK
sdk.dir=C\:\\Users\\USER_NAME\\AppData\\Local\\Android\\Sdk
api.key="API키 값"
- build.gradle 수정
buildFeatures {
buildConfig true // 사용자 정의 BuildConfig 필드를 활성화
}
defaultConfig {
applicationId "net.creamtech.naramarketalarmi"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
def Properties properties = new Properties()
// property load
properties.load(project.rootProject.file('local.properties').newDataInputStream())
buildConfigField "String", "WORK_SERVER", properties["WORK_SERVER"]
}
- BuildConfig.java 파일 경로
- build/generated/source/buildConfig/debug/com/yourpackage/ (또는 release 폴더)
- 사용코드
String workServer = BuildConfig.WORK_SERVER;
'Android' 카테고리의 다른 글
안드로이드 스튜디오 Java 디버깅 오류 (1) | 2023.10.16 |
---|---|
Lombok 과 Java Version (0) | 2023.10.16 |
프로젝트 생성시 템플릿설정 (0) | 2023.10.14 |