diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml
index b5d875c7..97212df5 100644
--- a/.github/workflows/android-ci.yml
+++ b/.github/workflows/android-ci.yml
@@ -39,6 +39,10 @@ jobs:
run: |
echo '${{ secrets.LOCAL_PROPERTIES }}' >> ./local.properties
+ - name: Generate keystore.properties
+ run: |
+ echo '${{ secrets.KEYSTORE_PROPERTIES }}' >> ./keystore.properties
+
- name: Generate google-services.json
run: echo '${{ secrets.GOOGLE_SERVICES }}' | base64 -d > ./app/google-services.json
diff --git a/.gitignore b/.gitignore
index ab92adc6..cf4b4700 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,7 @@ render.experimental.xml
# Keystore files
*.jks
*.keystore
+keystore.properties
# Google Services (e.g. APIs or Firebase)
google-services.json
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 6637bd62..bc45eee7 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,7 @@
@file:Suppress("INLINE_FROM_HIGHER_PLATFORM")
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+import java.util.Properties
plugins {
alias(libs.plugins.booket.android.application)
@@ -12,14 +13,35 @@ plugins {
android {
namespace = "com.ninecraft.booket"
- defaultConfig {
- buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getApiKey("KAKAO_NATIVE_APP_KEY"))
- manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = getApiKey("KAKAO_NATIVE_APP_KEY").trim('"')
+ signingConfigs {
+ create("release") {
+ val propertiesFile = rootProject.file("keystore.properties")
+ val properties = Properties()
+ properties.load(propertiesFile.inputStream())
+ storeFile = rootProject.file(properties["STORE_FILE"] as String)
+ storePassword = properties["STORE_PASSWORD"] as String
+ keyAlias = properties["KEY_ALIAS"] as String
+ keyPassword = properties["KEY_PASSWORD"] as String
+ }
}
buildTypes {
- release {
- isMinifyEnabled = false
+ getByName("debug") {
+ isDebuggable = true
+ applicationIdSuffix = ".dev"
+ manifestPlaceholders += mapOf(
+ "appName" to "@string/app_name_dev",
+ )
+ }
+
+ getByName("release") {
+ isDebuggable = false
+ isMinifyEnabled = true
+ isShrinkResources = true
+ signingConfig = signingConfigs.getByName("release")
+ manifestPlaceholders += mapOf(
+ "appName" to "@string/app_name",
+ )
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
@@ -27,6 +49,11 @@ android {
}
}
+ defaultConfig {
+ buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getApiKey("KAKAO_NATIVE_APP_KEY"))
+ manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = getApiKey("KAKAO_NATIVE_APP_KEY").trim('"')
+ }
+
buildFeatures {
buildConfig = true
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99ef021f..1443cd8d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
+ android:label="${appName}"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000..83483fc1
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,4 @@
+
+ Reed
+ Reed.dev
+
diff --git a/core/designsystem/src/main/res/values/strings.xml b/core/designsystem/src/main/res/values/strings.xml
index 514c5ee6..90f1c070 100644
--- a/core/designsystem/src/main/res/values/strings.xml
+++ b/core/designsystem/src/main/res/values/strings.xml
@@ -1,5 +1,4 @@
- Reed
네트워크 연결이 불안해요.\n잠시후 다시 이용해주세요.
이용에 불편을 드려 죄송합니다.\n잠시후 다시 이용해주세요.
알 수 없는 오류가 발생하였습니다.