API key를 발급받으면 key는 git에 올라가지 않아야하고, 다른 사람들의 정보에 띄어서는 안된다.
이 api_key를 숨기는 방법을 알아보자!
예시는 Kakao API key를 숨기는 형식을 예시로 들어서 해보았다.
먼저 git에도 올라가지 않게 하기 위해서 해당 코드를 .gitignore에 추가해주자
.gitignore
...
local.properties
.project
project.properties
secure.properties
.DS_Store
...
이제 키를 변수로 저장해서 숨겨보자.
android의 Gradle Script의 local.properties에 우리의 API키 값을 저장한다.
local.properties
...
// 본인이 발급받은 키를 원하는 변수 명에 담아서 저장
KAKAO_APP_KEY = asdfasdf123asdfa345sdf
KAKAO_REDIRECT_URI = asdfasdfas5345dfasdf
"의 더블 쿼테이션은 붙이지 않도록 한다.
다음은 android의 Gradle Script의 build.gradle(Module: 자신의 앱 이름
) 로 이동
build.gradle(Module: 자신의 앱 이름
)
android {
// 카카오 로그인 키
Properties properties = new Properties()
properties.load(project.rootProject.file("local.properties").newDataInputStream())
buildConfigField "String", "KAKAO_APP_KEY", "\"${properties.getProperty("KAKAO_APP_KEY")}\""
buildConfigField "String", "KAKAO_REDIRECT_URI", "\"${properties.getProperty("KAKAO_REDIRECT_URI")}\""
}
위 주황색 박스 부분처럼 추가.
이렇게 하고 build를 (안드로이드 스튜디오 망치버튼 누르면 리빌드 해줌)해주면,
BuildConfig.java에 자동으로 field 상수값이 저장된다.
빌드만 해줘도 이렇게 자동으로 추가가 된다.
이제 이걸 가지고 우리는 kotlin 파일이나 manifest에서도 쓸 수 있다.
만약 manifest에서 써야된다면 아래 코드를 추가해서 manifest에서 쓸 수 있는 manifestPlaceholders
도 추가해주면된다.
build.gradle(Module: 자신의 앱 이름
)
android {
// 카카오 로그인 키
Properties properties = new Properties()
properties.load(project.rootProject.file("local.properties").newDataInputStream())
buildConfigField "String", "KAKAO_APP_KEY", "\"${properties.getProperty("KAKAO_APP_KEY")}\""
buildConfigField "String", "KAKAO_REDIRECT_URI", "\"${properties.getProperty("KAKAO_REDIRECT_URI")}\""
defaultConfig {
manifestPlaceholders = ["KAKAO_REDIRECT_URI" : "\"${properties.getProperty("KAKAO_REDIRECT_URI")}\""]
}
}
이렇게 manifestPlaceholders
를 사용해서 값을 가져오면 manifest에서도 숨긴 값을 사용할 수 있다.
이제 키 값을 숨기는 작업은 모두 끝났고, 숨겨진 키값을 사용하러 가보자
kotlin 파일에서 사용하는 방법은 매우 간단하다.
그냥 이렇게 BuildConfig를 호출해서 저장한 변수로 불어오기만 하면됨
Manifest 에서는 사용할 값 자리에 "${}" 형식으로 변수 이름만 넣어주면 값이 들어가게 된다.
단, 위에서 우리가 manifestPlaceholders
를 만들어줬기 때문에 사용가능 한거고, 위에서 만들어놓은 변수와 다르면 빨간줄이 뜨게 되니까,
혹시 변수에 빨간 줄이 생긴다면 변수명을 실수로 다르게 했는지를 한번 확인해 봐야한다.
이상 끝
궁금하신 점 있으면 댓글로 남겨주세요!