Git 에다가 프로젝트를 올리다가 민감한 정보도 같이 올라갈수가 있다.
나도 처음에 api키 숨기는 법을 모르고 프로젝트를 진행하다가 뭔가 계속 찝찝함이 남아 있어서 api 키를 숨기는 법에
대해서 알게 되었다.
api키를 숨기는 방법은 생각보다 간단했다.
api키를 숨기는 방법은 아래와 같다.
1. gitignore 파일에 local.properties 추가하기
2. local.properties에 변수 생성하여 집어 넣기
3. buil.gradle(app) 파일에 Properties 객체 생성후 local.properties 파일읽어오기
4. buildConfigField 변수 생성후 프로젝트 빌드 다시하기
5. BuildGradle 클래스에서 생성한 변수 있는지 확인
6. 프로젝트 내에서 BuildGradle 변수 사용하기
이제 각각의 순서에 대해서 자세히 알아보자.
1. gitignore 파일에 local.properties 추가하기
.gitignore 파일에 local.properties를 추가한다.
근데 보통 https://www.toptal.com/developers/gitignore 여기서 androidstudio를 입력을 하면
local.properties가 추가되어 있긴 하지만 그래도 있는지 없는지는 체크하자.
(gitignore가 뭔지 모르는 사람은 아래 링크를 통해서 확인 하면될것 같다. )
https://wpioneer.tistory.com/196
2. local.properties에 변수 생성하여 집어 넣기
프로젝트 파일 밖에 있는 local.properties 파일에 이제 api키를 만들어서 넣으면 된다.
3. buil.gradle(app) 파일에 Properties 객체 생성후 local.properties 파일읽어오기
이제 local.properties에 변수를 생성했으니 build.gradle(app) 파일에서 Properties 객체를 생성후
load() 를 통해서 변수를 읽어온다.
//Properties 선언 및 키값을 불러옴
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
나 같은 경우는 위 소스를 build.gradle 제일 위에 올려두었다.
4. buildConfigField 변수 생성후 프로젝트 빌드 다시하기
이제 읽어왔으니 defaultConfig{} 안에다가 아래와 같이 변수를 만들면 된다.
buildConfigField "String", "만들 변수명",properties['local.properties에서 만든 변수명']
이제 이렇게 만들었으면 프로젝트를 다시 빌드한다.
5. BuildGradle 클래스에서 생성한 변수 있는지 확인
이렇게 만들고 나면 사용하려는 activity에서 BuildConfig를 적고 ctrl 누른상태에서 클릭해서 해당 클래스에 들어가서 확인해보자.
이렇게 잘 들어와 있다면 이제 프로젝트내에서 어디서든지 해당 변수를 사용할수 있다.
그럼 이제 사용방법을 알아보자.
6. 프로젝트 내에서 BuildGradle 변수 사용하기
사용방법은 되게 간단하다 그냥 BuildGradle.변수명을 통해서 가져오면 된다.
String apiKey = BuildConfig.MAGENCY_API_KEY; //BuildGradle에서 만든 상수 APIKey를 가져옴
※ 만약 안된다면!!
위와 똑같이 했는데도 되지 않는 경우가 있는데 그럴땐 Build -> CleanProject를 통해서 한번 지워주고 다시 시작하면
될수가 있다.
(내가 그랬음....)
'코딩일기 > 날씨앱 만들기 프로젝트' 카테고리의 다른 글
[AWS] AWS 시작 : AWS 서버 만들기 ( 인스턴스 생성) (0) | 2021.09.29 |
---|---|
[AWS] AWS 시작 : AWS 가입하기 (0) | 2021.09.29 |
날씨 앱 만들기 : 네트워크 연결 체크하기 (0) | 2021.09.28 |
날씨 앱 만들기 : FusedLocationProvider 사용법 Part 2 (MVVM / Java) (0) | 2021.09.25 |
날씨 앱 만들기 : FusedLocationProvider 사용법 Part 1 (MVVM / Java) (0) | 2021.09.25 |