팡세영
Log sey
팡세영
전체 방문자
오늘
어제
  • 분류 전체보기 (82)
    • PS (45)
      • programmers (13)
      • 백준 (29)
    • Android (16)
    • Daily (0)
    • Kotlin (6)
    • Design Pattern (3)
    • Java (1)
    • Flutter (3)
    • 책 리뷰 (1)
      • 클린 아키텍처 (1)
    • 공식문서 읽기 운동 (4)
      • Flutter (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mvvm
  • 구현
  • 자바
  • 공식문서
  • 완전탐색
  • 백준
  • 정렬
  • 하단네비게이션바
  • 데이터계층
  • ArcitecturePattern
  • LEVEL2
  • vercel
  • flutter
  • Android
  • 프로그래머스
  • 안드로이드
  • 클린아키텍처
  • 문자열
  • 플러터
  • BFS
  • Kotlin
  • programmers #프로그래머스
  • 단일책임원칙
  • CustomView
  • DFS
  • TestCode
  • 실버
  • 골드
  • 해쉬맵
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
팡세영

Log sey

Android - GitHub에 API Key, Hash 값 숨기기
Android

Android - GitHub에 API Key, Hash 값 숨기기

2023. 1. 5. 07:22

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
    'Android' 카테고리의 다른 글
    • 안드로이드 - Jetpack Compose Navigation Test Code
    • Android - JUnit 단위 테스트
    • 안드로이드 - csv 파일 읽기
    • Android - 아키텍쳐 패턴 (MVVM)
    팡세영
    팡세영
    Android, CS, PS

    티스토리툴바