<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 |