Skip to content

Commit 1078d34

Browse files
committed
Merge branch 'develop' into BOOK-212-feature/#98
2 parents 89fdbbd + 6698a94 commit 1078d34

File tree

12 files changed

+109
-7
lines changed

12 files changed

+109
-7
lines changed

.github/workflows/android-ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ jobs:
3939
run: |
4040
echo '${{ secrets.LOCAL_PROPERTIES }}' >> ./local.properties
4141
42+
- name: Generate keystore.properties
43+
run: |
44+
echo '${{ secrets.KEYSTORE_PROPERTIES }}' >> ./keystore.properties
45+
46+
- name: Generate google-services.json
47+
run: echo '${{ secrets.GOOGLE_SERVICES }}' | base64 -d > ./app/google-services.json
48+
4249
- name: Code style checks
4350
run: |
4451
./gradlew ktlintCheck detekt

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ render.experimental.xml
2929
# Keystore files
3030
*.jks
3131
*.keystore
32+
keystore.properties
3233

3334
# Google Services (e.g. APIs or Firebase)
3435
google-services.json

app/build.gradle.kts

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,59 @@
11
@file:Suppress("INLINE_FROM_HIGHER_PLATFORM")
22

33
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
4+
import java.util.Properties
45

56
plugins {
67
alias(libs.plugins.booket.android.application)
78
alias(libs.plugins.booket.android.application.compose)
89
alias(libs.plugins.booket.android.hilt)
10+
alias(libs.plugins.booket.android.firebase)
911
}
1012

1113
android {
1214
namespace = "com.ninecraft.booket"
1315

14-
defaultConfig {
15-
buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getApiKey("KAKAO_NATIVE_APP_KEY"))
16-
manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = getApiKey("KAKAO_NATIVE_APP_KEY").trim('"')
16+
signingConfigs {
17+
create("release") {
18+
val propertiesFile = rootProject.file("keystore.properties")
19+
val properties = Properties()
20+
properties.load(propertiesFile.inputStream())
21+
storeFile = rootProject.file(properties["STORE_FILE"] as String)
22+
storePassword = properties["STORE_PASSWORD"] as String
23+
keyAlias = properties["KEY_ALIAS"] as String
24+
keyPassword = properties["KEY_PASSWORD"] as String
25+
}
1726
}
1827

1928
buildTypes {
20-
release {
21-
isMinifyEnabled = false
29+
getByName("debug") {
30+
isDebuggable = true
31+
applicationIdSuffix = ".dev"
32+
manifestPlaceholders += mapOf(
33+
"appName" to "@string/app_name_dev",
34+
)
35+
}
36+
37+
getByName("release") {
38+
isDebuggable = false
39+
isMinifyEnabled = true
40+
isShrinkResources = true
41+
signingConfig = signingConfigs.getByName("release")
42+
manifestPlaceholders += mapOf(
43+
"appName" to "@string/app_name",
44+
)
2245
proguardFiles(
2346
getDefaultProguardFile("proguard-android-optimize.txt"),
2447
"proguard-rules.pro",
2548
)
2649
}
2750
}
2851

52+
defaultConfig {
53+
buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getApiKey("KAKAO_NATIVE_APP_KEY"))
54+
manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = getApiKey("KAKAO_NATIVE_APP_KEY").trim('"')
55+
}
56+
2957
buildFeatures {
3058
buildConfig = true
3159
}

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
android:dataExtractionRules="@xml/data_extraction_rules"
1616
android:fullBackupContent="@xml/backup_rules"
1717
android:icon="@mipmap/ic_launcher"
18-
android:label="@string/app_name"
18+
android:label="${appName}"
1919
android:networkSecurityConfig="@xml/network_security_config"
2020
android:roundIcon="@mipmap/ic_launcher_round"
2121
android:supportsRtl="true"
@@ -36,6 +36,10 @@
3636
android:name="com.ninecraft.booket.initializer.KakaoSdkInitializer"
3737
android:value="androidx.startup" />
3838

39+
<meta-data
40+
android:name="com.ninecraft.booket.initializer.FirebaseCrashlyticsInitializer"
41+
android:value="androidx.startup" />
42+
3943
</provider>
4044

4145
<activity
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.ninecraft.booket.initializer
2+
3+
import android.content.Context
4+
import androidx.startup.Initializer
5+
import com.google.firebase.crashlytics.FirebaseCrashlytics
6+
import com.ninecraft.booket.BuildConfig
7+
8+
class FirebaseCrashlyticsInitializer : Initializer<Unit> {
9+
override fun create(context: Context) {
10+
FirebaseCrashlytics.getInstance().isCrashlyticsCollectionEnabled = !BuildConfig.DEBUG
11+
}
12+
13+
override fun dependencies(): List<Class<out Initializer<*>>> {
14+
return emptyList()
15+
}
16+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<resources>
2+
<string name="app_name">Reed</string>
3+
<string name="app_name_dev">Reed.dev</string>
4+
</resources>

build-logic/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ gradlePlugin {
1919
"android.library" to "AndroidLibraryConventionPlugin",
2020
"android.library.compose" to "AndroidLibraryComposeConventionPlugin",
2121
"android.feature" to "AndroidFeatureConventionPlugin",
22+
"android.firebase" to "AndroidFirebaseConventionPlugin",
2223
"android.hilt" to "AndroidHiltConventionPlugin",
2324
"android.retrofit" to "AndroidRetrofitConventionPlugin",
2425
"jvm.library" to "JvmLibraryConventionPlugin",
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
import com.ninecraft.booket.convention.Plugins
3+
import com.ninecraft.booket.convention.applyPlugins
4+
import com.ninecraft.booket.convention.implementation
5+
import com.ninecraft.booket.convention.libs
6+
import org.gradle.api.Plugin
7+
import org.gradle.api.Project
8+
import org.gradle.kotlin.dsl.dependencies
9+
10+
internal class AndroidFirebaseConventionPlugin : Plugin<Project> {
11+
override fun apply(target: Project) {
12+
with(target) {
13+
applyPlugins(
14+
Plugins.GOOGLE_SERVICES,
15+
Plugins.FIREBASE_CRASHLYTICS,
16+
)
17+
18+
dependencies {
19+
implementation(platform(libs.firebase.bom))
20+
implementation(libs.firebase.analytics)
21+
implementation(libs.firebase.crashlytics)
22+
}
23+
}
24+
}
25+
}

build-logic/src/main/kotlin/com/ninecraft/booket/convention/Plugins.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ object Plugins {
1313

1414
const val HILT = "dagger.hilt.android.plugin"
1515
const val KSP = "com.google.devtools.ksp"
16+
const val GOOGLE_SERVICES = "com.google.gms.google-services"
17+
const val FIREBASE_CRASHLYTICS = "com.google.firebase.crashlytics"
1618
}

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ plugins {
1313
alias(libs.plugins.android.library) apply false
1414
alias(libs.plugins.hilt) apply false
1515
alias(libs.plugins.ksp) apply false
16+
alias(libs.plugins.google.service) apply false
17+
alias(libs.plugins.firebase.crashlytics) apply false
1618
}
1719

1820
val excludeModules: String? by project

0 commit comments

Comments
 (0)