1. .gitignore에 local.properties 추가하기
숨겨야 하는 키이기 때문에 gitignore에 숨긴다.
/local.properties
local.properties
2. local.properties에 키 추가하기
만약 카카오 네이티브키가 abcd1234라면 아래처럼 local.properties에 추가한다.
절대 따옴표로 감싸지 않는다.
# 카카오 키 숨기기
KAKAO_APP_KEY = abcd1234
NATIVE_KAKAO_APP_KEY = kakaoabcd1234
3. build.gradle.kts(Module:app)에 추가하기
local.properties에 넣은 키를 BuildConfig 파일에 넣기 위한 세팅을 한다.
이 때 buildConfigField랑 manifestPlaceholders 사용 방법이 다르다.
manifestPlaceholders는 AndroidManifest.xml에서 키를 사용하기 위해 쓰인다.
import java.util.Properties
plugins {
...
}
// 카카오 로그인 키
val properties = Properties().apply {
load(project.rootProject.file("local.properties").inputStream())
}
var manifestPlaceholders = mutableMapOf<String, Any>()
android {
...
buildFeatures {
...
buildConfig = true
}
defaultConfig {
...
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
// 카카오 로그인 키
buildConfigField("String", "KAKAO_APP_KEY", "\"${properties.getProperty("KAKAO_APP_KEY")}\"")
buildConfigField("String", "NATIVE_KAKAO_APP_KEY", "\"${properties.getProperty("NATIVE_KAKAO_APP_KEY")}\"")
manifestPlaceholders["NATIVE_KAKAO_APP_KEY"] = properties.getProperty("SCHEME_KAKAO_APP_KEY")
}
4. Build 또는 Rebuild 프로젝트를 한다.
그러면 [java (generated)] - [패키지명] - [BuildConfig]로 BuildConfig 파일이 생긴 것을 확인할 수 있다.
BuildConfig 파일을 보면 우리가 local.properties에 넣었던 키를 확인할 수 있다.
/**
* Automatically generated file. DO NOT MODIFY
*/
public final class BuildConfig {
...
// Field from default config.
public static final String KAKAO_APP_KEY = "abcd1234";
// Field from default config.
public static final String NATIVE_KAKAO_APP_KEY = "kakaoabcd1234";
}
5. AndroidManifest.xml에 키 넣기
3번에서 말했듯이 AndroidManifest.xml에서 키를 사용하기 위해 manifestPlaceholders를 사용했다.
이러고 ${키 이름} 쓰면 된다. 나는 NATIVE_KAKAO_APP_KEY로 지정했으니 다음과 같이 넣었다.
<data
android:host="oauth"
android:scheme="${NATIVE_KAKAO_APP_KEY}" />
6. AndroidManifest.xml이 아닌 곳에 키 넣기 (ex. GlobalApplication)
나는 GlobalApplication에도 네이티브 키를 넣어야 한다. 이번에는 buildConfigField으로 저장했던 것을 다시 꺼내려고 한다. 이때는 BuildConfig.키이름 으로 하면 된다. 나는 KAKAO_APP_KEY로 지정했으니 다음과 같이 넣었다.
class GlobalApplication: Application() {
override fun onCreate() {
super.onCreate()
KakaoSdk.init(this, BuildConfig.KAKAO_APP_KEY)
}
}
'공부 > 안드로이드' 카테고리의 다른 글
[Android/Kotlin] 토큰 저장/불러오기 (SharedPreferences) (0) | 2024.07.23 |
---|---|
[Android/Kotlin] 스플래시 화면 구현 (2) | 2024.07.23 |
[Android/Kotlin] 다른 Activity 종료 (0) | 2024.02.22 |
[Android/Kotlin] 복사하기 기능 (0) | 2024.02.21 |
[Android/Kotlin] API 연결 (0) | 2024.02.21 |