본문 바로가기
Android 개발/Android

Android API key 값 안전하게 Local.properties 에 보관하기

by Developer88 2024. 12. 18.
반응형

API 키 값을 github에 직접 보관하는 일은 위험합니다.

그래서 안드로이드앱을 개발하는 경우,

Local.properties를 활용해서 안전하게 보관해야 하는데요.

오늘은 이 방법에 대해서 정리하겠습니다.

 

1. local.properties

local.properties파일은 다음의 목적으로 존재합니다.

  • 안드로이드 SDK위치 저장: 개발자마다 다를 수 있기 때문에, local.properties에 저장해서 사용
  • 민감한 정보 보호: API키, 비밀번호등을 안전하게 저장
  • 개발자별로 다른 설정

local.properties는 대부분 '.gitignore'파일에 포함되어 있지만,

중요한 값을 넣기전에, 한번 더 확인해 보아야 합니다.

 

Gradle빌드시에 이 파일의 정보를 사용할 수 있게 해주므로,

안전하게 값을 사용할 수 있습니다.

 

2. local.properties 사용

최초에 local.propeties파일을 열어보면,

아래와 같이 안드로이드 sdk의 위치가 저장되어 있는 것을 볼 수 있습니다.

 

## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/Users/tester/Library/Android/sdk

 

이 글에서는 api키값을 넣어보도록 하겠습니다.

이 때 키 값의 이름을 짓는 네이밍 컨벤션은 다음과 같습니다.

  • 소문자 사용
  • 단어 사이를 점으로 구분
test.api.key="132324242ab"

 

 

3. 저장한 값 불러와 사용하기

그럼 이 값을 어떻게 불러와서 사용하는지 보겠습니다.

먼저 app레벨의 build.gradle에서 아래와 같이 local.properties 값을 로드합니다.

 

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

android {
    defaultConfig {
        buildConfigField "String", "TEST_API_KEY", properties["test.api.key"]
    }
}

 

 

이제 BuildConfig을 통해서 키에 접근할 수 있게 되었습니다.

참고로 BuildConfig에 관해서는 아래 글을 참조해 주세요.

 

>> BuildConfig 와 ProductFlavor 정리 # BuildTypes BuildConfigField

 

BuildConfig 와 ProductFlavor 정리 # BuildTypes BuildConfigField

오늘은 BuildConfig와 ProductFlavor에 대해서 정리해 보고자 하는데요. 이 두가지 클래스들은 각각 빌드별로 다른 값을 가지거나, 기본앱과는 다른 타입의 앱을 출시해서 사용하도록 하는데 사용할 수

developer88.tistory.com

 

이제 코드에서 이 값을 아래와 같이 불러와 사용할 수 있습니다.

 

val apiKey = BuildConfig.TEST_API_KEY

 

참고로, build과정을 한번 거쳐야 하기 때문에,

코드에서 BuildConfig의 값에 접근하려면,

rebuild를 한번 해주고 나서 사용해야 Compile Error가 발생하지 않습니다.

 

728x90

댓글