[안드로이드] API 키 관리

말랑돌·2025년 8월 8일

안드로이드 학습

목록 보기
11/17
post-thumbnail

app수준의 build.gradle.kts에 다음 같은 요소를 추가

import java.io.FileInputStream
import java.util.Properties

val properties = Properties().apply {
    load(FileInputStream(rootProject.file("local.properties")))
}

// 안전하게 키 읽기 (값이 없으면 에러를 띄우도록 하거나 기본값 설정)
val API_KEY: String = properties.getProperty("API_KEY")
    ?: throw GradleException("API_KEY is not defined in local.properties")

android {
	defaultConfig {
    	...
    	 // 1) buildConfigField: 문자열값은 반드시 큰따옴표로 감싼 리터럴이어야 함
         //일반 .kt 코드에서 사용할때
        buildConfigField("String", "API_KEY", "\"$API_KEY\"")

        // 2) manifestPlaceholders: manifest 치환을 위해 반드시 전달
        //mainfest에서 사용할때
        manifestPlaceholders["API_KEY"] = API_KEY
         ...
    }
    
    buildFeatures {
        buildConfig = true
    }
}

local.properties에 다음같이 추가

API_KEY=API_KEY //이때 쌍따옴표를 사용하지 않음

kt 파일 코드에 사용시

만약 빨간줄이 뜨면, File -> invalidate Caches -> 이후 다시 빌드

BuildConfig.API_KEY

매니페스트 수정 시

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.MyApplication">
    <meta-data
        android:name="com.example.myapp.API_KEY"
        android:value="${apiKeyPlaceholder}" />
</application>

0개의 댓글