전기뱀장어 -> 기린 -> 고슴도치까지 한달사이에 버전이 많이 바뀌었다.
그래서 빌드그레들 선언하는것도 많이 낯설어서 적응중이었다.
최근에 가장 불편했던 점이 원래 전기뱀장어 버전에서는 API숨길 때 아래와 같이 하면 됐었다.
1. 기존 방법
local.properties에 kakao_api_key = "내 API값"
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
android {
defaultConfig {
buildConfigField "String", "KAKAO_API_KEY", properties['kakao_api_key'] }}
사용할 때는 val key = BuildConfig.KAKAO_API_KEY 이런식으로 쓰면 됐었는데 지금은 안먹힌다.
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 이거 부터 안먹혀서 구글링을 하면서 찾는데 시간이 좀 걸렸다.
2. 지라프(GIRAFFE) , 고슴도치(hedgehog) API 숨기기
1. local.properties에 api.key = " API 키 "로 키를 넣어서 숨겨준다.
2. 빌드그레들 : app 차례대로 넣어주면 된다.
3. fun도 빌드그레들에 넣어준다. 맨 아래에다가 넣어주면 된다.
4. 뷰바인딩 아래에 넣어준다.
중간에 빨간줄이 생길수도 있지만 1-4번까지 다 작성하면 적용되는 모습을 볼 수 있다.
나는 다 작성해도 적용이 안되서 import 삭제했다 반복하고, fun도 지웠다 적었다, 클린빌드 등등을 시도하니까 적용되었다.
혹시 몰라 빌드그레들 전체코드다
추가된 부분은 추가 되었다고 주석으로 달아두겠다!
사용방법은
val api = BuildConfig.api_key 이렇게 쓰면 된다.
***************************추가****************************
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
***********************************************************
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.example.newsapp"
compileSdk = 34
defaultConfig {
applicationId = "com.example.newsapp"
minSdk = 28
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
***************************추가****************************
buildConfigField("String","api_key", getApiKey("api.key"))
***********************************************************
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
viewBinding = true
***************************추가*********************************
buildConfig = true
***************************************************************
}
}
dependencies {
implementation("com.google.code.gson:gson:2.10.1")
implementation ("com.github.bumptech.glide:glide:4.15.1")
implementation("androidx.fragment:fragment-ktx:1.6.2")
implementation("androidx.viewpager2:viewpager2:1.0.0")
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.10.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}
***************************추가*********************************
fun getApiKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
****************************************************************
'안드로이드앱' 카테고리의 다른 글
PayAPP 팀프로젝트 회고록 작성(11월 20일 ~ 12월 8일) (0) | 2023.12.22 |
---|---|
API 불러오기 HttpURLConnection, Gson, Rtrofit2 까지 모두 (0) | 2023.12.13 |
안드로이드 날씨앱 위젯만들기 도전 1! (0) | 2023.11.16 |
안드로이드 코틀린 프로젝트 날씨앱 만들기! (2) | 2023.11.13 |
안드로이드 코틀린 결제창 연동! Bootpay 이니시스 테스트 모드 (1) | 2023.10.31 |