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.필드명

사용법

# 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

+ Recent posts