1. gitignore 파일 수정
자신의 github 레포지토리에 들어가 Android Studio 프로젝트의 gitignore 파일을 수정해주어야 합니다.
API 키를 local.properties 안에다가 저장 시킬것 이므로 위와 같이 gitignore에 local.properties를 추가해줍니다.
또한 /build 경로에는 BuildConfig가 존재하고 이 안에 API키를 변수로 저장하기 때문에 /build 또한 gitignore에 추가해 줍니다.
2. local.properties
인제 안드로이드 스튜디오에서 local.properties 파일을 아래와 같이 수정해줍니다.
sdk 경로 아래에 자신이 숨기고 싶은 중요한 키 값, 해쉬 값등 데이터를 선언해줍니다.
2. build.gradle (:app)
앱 수준의 buidl.gradle에 들어가 local.properties에 선언한 값들을 아래와 같이 불러와 주어야 합니다.
plugins {
id 'com.android.application'
}
// local.properties에서 선언한 값들을 불러와 주기 위함
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
repositories {
. . . .
}
android {
compileSdk 32
defaultConfig {
. . .
buildConfigField "String", "KAKAO_KEY", properties['KaKao_key']
buildConfigField "String", "TRAVEL_API_KEY", properties['travel_api_key']
// 프로젝트 내에서 언제든지 사용이 가능한 변수들이다.
// 타입 - 키 - 값으로 저장된다.
manifestPlaceholders = [KAKAO_KEY: KaKao_key]
// 매니페스트에서 사용이 가능하다. 구글맵 같은 경우가 이에 해당한다.
// 키 - 값으로 저장된다.
}
위와 같이 설정하고 Sync Project (코끼리)를 눌러준 후 상단의 Build 탭에서 Rebuild Project를 눌러주면
아래와 같이 BuildConfig파일이 수정됩니다.
AndroidStudio에서 BuildConfig 파일을 찾기 힘드시면 shift 두번 누른 후 BuildConfig.java를 검색해주시면 됩니다.
/**
* Automatically generated file. DO NOT MODIFY
*/
package org.techtown.osshango;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "org.techtown.osshango";
public static final String BUILD_TYPE = "debug";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
// Field from default config.
public static final String TRAVEL_API_KEY = "nzMrZ ..." ;
public static final String KAKAO_KEY = "skAzs ..." ;
}
3. 사용
매니페스트에서 사용시
<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" />
<data
android:host="oauth"
android:scheme="${KaKao_Key}" />
</intent-filter>
</activity>
자바 코드에서 사용시
public class MainActivity extends AppCompatActivity {
String KAKAO_KEY = BuildConfig.KaKao_key; // API KEY
String TRAVEL_KEY = BuildConfig.TRAVEL_API_KEY;
}
이런식으로 중요한 값들을 숨기고 협업시 local.properties의 내용만 잘 전달해주면 됩니다.
'Android' 카테고리의 다른 글
안드로이드 - Jetpack Compose Navigation Test Code (0) | 2023.12.30 |
---|---|
Android - JUnit 단위 테스트 (0) | 2023.07.04 |
안드로이드 - csv 파일 읽기 (0) | 2022.11.21 |
Android - 아키텍쳐 패턴 (MVVM) (3) | 2022.09.22 |
안드로이드 - Kotlin login 구현 (PHP, mysql, volley) (0) | 2022.08.04 |