<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI: "kakao${NATIVE_APP_KEY}://oauth" -->
<data android:host="oauth"
android:scheme="kakao${NATIVE_APP_KEY}" />
</intent-filter>
</activity>
카카오 SDK 연동을 하다보면 AndroidManifest
에 APP KEY를 요구하는데, 중요한 Api Key를 보관할때 properties
파일을 별도로 만들어두고 빌드시에 BuildConfig에 변수를 할당하여 사용하는 패턴이 일반적이다. 하지만 AndroidManifest
에서 BuildConifg
에 접근하는 방법은 없다. 이때 사용하는 것이 바로 ManifestPlaceholder다.
위 Manifest 내용은 카카오 SDK 예시인데, 저렇게 NATIVE_APP_KEY
를 가져올 수 있도록 세팅해보자. 안드로이드 프로젝트를 만들면 기본적으로 생성되는 local.properties
를 사용해보도록 하겠다. kakao.native_app_key
프로퍼티를 추가해준다.
...
kakao.native_app_key=YOUR_KAKAO_NATIVE_APP_KEY
...
Manifest Placeholder는 Manifest에서 불릴 이름과 실제 값이 Key-Value Pair를 이룬다.
Key는 NATIVE_APP_KEY
로, local.properties
에 선언한 값을 할당해주면 Manifest에서 ${NAVITE_APP_KEY}
로 값을 사용할 수 있게된다.
val localProperties = Properties()
localProperties.load(FileInputStream(rootProject.file("local.properties")))
android {
defaultConfig {
manifestPlaceholders["NATIVE_APP_KEY"] = (localProperties["kakao.native_app_key"] as String).trim('"')
}
...
}
Android Manifest 파일 관리 문서
https://developer.android.com/build/manage-manifests?hl=ko#kts
'프로그래밍 > Android' 카테고리의 다른 글
[안드로이드] IllegalStateException: Storage for [...] is already registered 오류 해결방법 (0) | 2024.10.27 |
---|---|
[Compose] 빨간 점 시스템 만들기 (1) | 2024.10.20 |
Android Room은 어떻게 Flow를 지원할 수 있었을까? (0) | 2024.09.14 |
Mastering Android ViewModels: init {} 블록에서 상태를 초기화하는 것을 피하라 (0) | 2024.06.23 |
Mastring Android ViewModels: 필요하다면, 생성자에 의존성을 Lazy하게 주입하라 (0) | 2024.06.23 |