plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' } android { namespace 'com.analysis.goldenanalysis' compileSdk 34 defaultConfig { applicationId "com.analysis.goldenanalysis" minSdk 24 targetSdk 34 versionCode 1 versionName "1.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // 빌드 시간을 버전 이름에 포함하여 빌드 확인 가능 buildConfigField "long", "BUILD_TIMESTAMP", System.currentTimeMillis() + "L" } // signingConfigs는 buildTypes보다 먼저 정의되어야 함 signingConfigs { release { def keystoreFile = file("${rootProject.projectDir}/golden-analysis.keystore") if (keystoreFile.exists()) { storeFile keystoreFile storePassword System.getenv("KEYSTORE_PASSWORD") ?: "goldenanalysis" keyAlias System.getenv("KEY_ALIAS") ?: "golden-analysis" keyPassword System.getenv("KEY_PASSWORD") ?: "goldenanalysis" v1SigningEnabled true v2SigningEnabled true } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 서명 설정 적용 def keystoreFile = file("${rootProject.projectDir}/golden-analysis.keystore") if (keystoreFile.exists()) { signingConfig signingConfigs.release } } debug { applicationIdSuffix ".debug" versionNameSuffix "-debug" } } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } buildFeatures { viewBinding true buildConfig true // BuildConfig 생성 활성화 } // 캐시 문제 방지를 위한 설정 gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } } dependencies { implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.11.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0' implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7' implementation 'androidx.navigation:navigation-ui-ktx:2.7.7' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' // Room components implementation "androidx.room:room-runtime:2.6.1" kapt "androidx.room:room-compiler:2.6.1" implementation "androidx.room:room-ktx:2.6.1" // WorkManager implementation "androidx.work:work-runtime-ktx:2.9.0" // Retrofit for networking implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.okhttp3:okhttp:4.11.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0' // Coroutines implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3" // Lifecycle components implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.7.0" }