Skip to content

Commit 78742bf

Browse files
committed
chore: Setup release build signing config
1 parent 1bc13fc commit 78742bf

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,16 @@ Bitkit Android Native app.
1616

1717
## Localization
1818
See repo: https://github.com/synonymdev/bitkit-transifex-sync
19+
20+
## Build for Release
21+
22+
Setup the signing config:
23+
- Add the keystore file to root, eg. `./release.keystore`
24+
- Add `keystore.properties` to root of the project (see `keystore.properties.template`)
25+
26+
Run:
27+
```sh
28+
./gradlew assembleRelease
29+
```
30+
31+
APK is generated in `app/build/outputs/apk/release/`

app/build.gradle.kts

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import org.jetbrains.kotlin.compose.compiler.gradle.ComposeFeatureFlag
2+
import java.io.FileInputStream
3+
import java.util.Properties
24

35
plugins {
46
alias(libs.plugins.android.application)
@@ -10,15 +12,27 @@ plugins {
1012
alias(libs.plugins.google.services)
1113
alias(libs.plugins.room)
1214
}
15+
16+
// https://developer.android.com/studio/publish/app-signing#secure-key
17+
// Init keystoreProperties variable from keystore.properties file
18+
val keystoreProperties by lazy {
19+
val keystoreFile = rootProject.file("keystore.properties")
20+
val keystoreProperties = Properties()
21+
if (keystoreFile.exists()) {
22+
keystoreProperties.load(FileInputStream(keystoreFile))
23+
}
24+
keystoreProperties
25+
}
26+
1327
android {
1428
namespace = "to.bitkit"
1529
compileSdk = 35
1630
defaultConfig {
17-
applicationId = "to.bitkit"
31+
applicationId = "to.bitkit.dev"
1832
minSdk = 28
1933
targetSdk = 35
2034
versionCode = 1
21-
versionName = "1.0"
35+
versionName = "0.0.1"
2236
resourceConfigurations += listOf(
2337
"en", // Default (English)
2438
"ar", // Arabic
@@ -49,18 +63,26 @@ android {
4963
keyAlias = "androiddebugkey"
5064
keyPassword = "android"
5165
}
66+
create("release") {
67+
storeFile = rootProject.file(keystoreProperties.getProperty("storeFile") as String)
68+
storePassword = keystoreProperties.getProperty("storePassword") as String
69+
keyAlias = keystoreProperties.getProperty("keyAlias") as String
70+
keyPassword = keystoreProperties.getProperty("keyPassword") as String
71+
}
5272
}
5373
buildTypes {
5474
debug {
5575
signingConfig = signingConfigs.getByName("debug")
56-
applicationIdSuffix = ".dev"
76+
// applicationIdSuffix = ".dev"
5777
}
5878
release {
5979
isMinifyEnabled = false
80+
isShrinkResources = false
6081
proguardFiles(
6182
getDefaultProguardFile("proguard-android-optimize.txt"),
6283
"proguard-rules.pro"
6384
)
85+
signingConfig = signingConfigs.getByName("release")
6486
}
6587
}
6688
compileOptions {

keystore.properties.template

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
storeFile=app/debug.keystore
2+
storePassword=android
3+
keyPassword=android
4+
keyAlias=androiddebugkey

0 commit comments

Comments
 (0)