방명록
- [Android] 민감한 정보 숨기기 | local.properties에 api key저장하기2022년 08월 15일 23시 26분 24초에 업로드 된 글입니다.작성자: 핀수728x90반응형
그동안은 앱수준의 build.gradle 에서 보관을 하고 있었다.
(하드코딩 하지 않으려고 변수로 지정해 사용중이었음)
buildTypes { debug { minifyEnabled false debuggable true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", "\"your_url/\"" buildConfigField "String", "APP_KEY", "\"your_key\"" } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
build.gradle..따로 .gitignore에 포함시키지 않았기 때문에
깃헙에 내 코드를 올리면 내 소중한 key는 만천하에 공개된다....
N
O
O
o
o
o
o
。
。
.
.
.
.숨겨야한다.
중요한 정보를 local.properties에 숨겨보려고 한다.
🤔 local.properties가 모죠
프로젝트에 사용되는 속성을 구성하는 데 사용
열어보면 알겠지만 sdk 디렉토리의 경로가 적혀있는 바로 그 파일!
프로젝트를 생성 하면 기본적으로 .gitignore에 지정되어 있다.
만약 되어있지 않다면 포함시켜 준다.
local.properties
아래와 같이 숨기고 싶은 값을 적어준다.
api_url = "your_url" api_key = "your_key"
app 수준의 build.gradle에서 저장한 정보를 불러온다.
plugins { id 'com.android.application' id 'kotlin-android' id 'androidx.navigation.safeargs' } apply plugin: 'kotlin-kapt' Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) android { ...
그리고 아까의 buildConfigField 를 아래와 같이 바꿔주면 된다.
buildTypes { debug { minifyEnabled false debuggable true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", properties['api_url'] buildConfigField "String", "APP_KEY", properties['api_key'] } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
빌드를 하고 나면 BuildConfig에 저장되고 프로젝트 어디서든 지정한 변수로 접근이 가능하다.
(BuildConfig 또한 .gitignore에 포함되어 있기 때문에 외부에 노출되지 않는다.
→ /build 가 깃 이그노어에 포함되어 있으면 된다.)
References
아래 글을 참고하여 작성 되었습니다.
https://velog.io/@hoyaho/HideAPIKey
https://answers.sap.com/questions/12765796/what-is-use-of-localproperties.html
728x90반응형'pinslog > Log.daily()' 카테고리의 다른 글
다음글이 없습니다.이전글이 없습니다.댓글