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잠시후 다시 이용해주세요. 알 수 없는 오류가 발생하였습니다.