카카오SDK키값, 서버주소를 숨기고 retrofit 주소값을 개발(로컬)서버와 배포서버를 쉽게 분리할 수 있도록 재설정한다.
public class RetrofitClient {
private static final String BASE_URL = "서버주소를 문자열 그대로 사용";
public static SearchPageRetrofitService getApiService() {
return getInstance().create(SearchPageRetrofitService.class);
}
private static Retrofit getInstance() {
Gson gson = new GsonBuilder().setLenient().create();
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
}
여러개의 서버 IP를 쓰기 위해서 만든 클래스
public class TaskServer {
public static final String v1Server = "주소";
// public static final String v1Server = "http://localhost:8080/v1/";
public static final String kkoMapURL = "https://dapi.kakao.com/";
public static final String fineDustURL = "http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/";
public static final String openWeatherURL = "https://api.openweathermap.org/data/2.5/";
}
public class RetrofitClient {
private static final String BASE_URL = TaskServer.v1Server;
public static ObservationPageRetrofitService getApiService() {
return getInstance().create(ObservationPageRetrofitService.class);
}
private static Retrofit getInstance() {
Gson gson = new GsonBuilder().setLenient().create();
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
}
BASE_URL을 TaskServer의 값으로 불러온다.
gitignore확인해보면 해당 파일이 포함되어있기 때문에 키값을 숨길 수 있다.
숨기고 싶은 값을 지정해준다.
또한 그렇기 때문에 각자 자신의 로컬프로젝트에서 추가해 주어야 한다.
spring_server_v1 = "주소값"
앱수준의 그래들에서 값을 불러온다
buildConfigField
프로젝트 내에서 언제든지 사용이 가능한 변수들이다.
타입 - 키 - 값으로 저장된다.
manifestPlaceholders = [GOOGLE_API_KEY: google_api_key]
매니페스트에서 사용이 필요한 경우 이용한다. 구글맵 같은 경우가 이에 해당한다
키 - 값으로 저장된다.
'''
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
'''
buildConfigField "String", "SPRING_SERVER_V1", properties['spring_server_v1']
//manifestPlaceholders = [GOOGLE_API_KEY: google_api_key] //적용예시
}
public final class BuildConfig {
'''
// Field from default config.
public static final String SPRING_SERVER_V1 = "입력한키값";
}
gradle수정 후 sync해도 BuildConfig파일이 수정되지 않았다면 build메뉴의 rebuildproject를 해본다
서버 주소를 다시 숨기기 위해 아까 넣어둔 값을 변경한다.
buildConfigField로 정의한 값은 “BuildConfig.지정키” 으로 사용할 수 있다.
public class TaskServer {
public static final String v1Server = BuildConfig.SPRING_SERVER_V1;
'''
}
이와 같은 방법으로 각자 사용한 키값을 숨겨주면 된다.
출처