feat: implement flavor-specific key properties for staging and production environments
This commit is contained in:
@@ -21,8 +21,20 @@ dartDefinesString.split(",").forEach {
|
||||
}
|
||||
}
|
||||
|
||||
// Load flavor-specific key properties: key.dev.properties, key.stage.properties, key.prod.properties
|
||||
// The active flavor is resolved from the Gradle task name (e.g. assembleDevRelease -> dev)
|
||||
fun resolveFlavorFromTask(): String {
|
||||
val taskNames = gradle.startParameter.taskNames.joinToString(" ").lowercase()
|
||||
return when {
|
||||
taskNames.contains("prod") -> "prod"
|
||||
taskNames.contains("stage") -> "stage"
|
||||
else -> "dev"
|
||||
}
|
||||
}
|
||||
|
||||
val activeFlavorForSigning = resolveFlavorFromTask()
|
||||
val keystoreProperties = Properties().apply {
|
||||
val propertiesFile = rootProject.file("key.properties")
|
||||
val propertiesFile = rootProject.file("key.${activeFlavorForSigning}.properties")
|
||||
if (propertiesFile.exists()) {
|
||||
load(propertiesFile.inputStream())
|
||||
}
|
||||
@@ -80,7 +92,7 @@ android {
|
||||
keyAlias = System.getenv()["CM_KEY_ALIAS"]
|
||||
keyPassword = System.getenv()["CM_KEY_PASSWORD"]
|
||||
} else {
|
||||
// Local development environment
|
||||
// Local development environment — loads from key.<flavor>.properties
|
||||
keyAlias = keystoreProperties["keyAlias"] as String?
|
||||
keyPassword = keystoreProperties["keyPassword"] as String?
|
||||
storeFile = keystoreProperties["storeFile"]?.let { file(it) }
|
||||
|
||||
9
apps/mobile/apps/client/android/key.prod.properties
Normal file
9
apps/mobile/apps/client/android/key.prod.properties
Normal file
@@ -0,0 +1,9 @@
|
||||
storePassword=krowwithus
|
||||
keyPassword=krowwithus
|
||||
keyAlias=krow_client_prod
|
||||
storeFile=krow_with_us_client_prod.jks
|
||||
|
||||
###
|
||||
### Client Prod
|
||||
### SHA1: B2:80:46:90:7F:E5:9E:86:62:7B:06:90:AC:C0:20:02:73:5B:20:5C
|
||||
### SHA256: D8:3C:B0:07:B5:95:3C:82:2F:2C:A9:F6:8D:6F:77:B9:31:9D:BE:E9:74:4A:59:D9:7F:DC:EB:E2:C6:26:AB:27
|
||||
9
apps/mobile/apps/client/android/key.stage.properties
Normal file
9
apps/mobile/apps/client/android/key.stage.properties
Normal file
@@ -0,0 +1,9 @@
|
||||
storePassword=krowwithus
|
||||
keyPassword=krowwithus
|
||||
keyAlias=krow_client_stage
|
||||
storeFile=krow_with_us_client_stage.jks
|
||||
|
||||
###
|
||||
### Client Stage
|
||||
### SHA1: 89:9F:12:9E:A5:18:AC:1D:75:73:29:0B:F2:C2:E6:EB:38:B0:F0:A0
|
||||
### SHA256: 80:13:10:CB:88:A8:8D:E9:F6:9E:D6:55:53:9C:BE:2D:D4:9C:7A:26:56:A3:E9:70:7C:F5:9A:A7:20:1A:6D:FE
|
||||
@@ -21,8 +21,20 @@ dartDefinesString.split(",").forEach {
|
||||
}
|
||||
}
|
||||
|
||||
// Load flavor-specific key properties: key.dev.properties, key.stage.properties, key.prod.properties
|
||||
// The active flavor is resolved from the Gradle task name (e.g. assembleDevRelease -> dev)
|
||||
fun resolveFlavorFromTask(): String {
|
||||
val taskNames = gradle.startParameter.taskNames.joinToString(" ").lowercase()
|
||||
return when {
|
||||
taskNames.contains("prod") -> "prod"
|
||||
taskNames.contains("stage") -> "stage"
|
||||
else -> "dev"
|
||||
}
|
||||
}
|
||||
|
||||
val activeFlavorForSigning = resolveFlavorFromTask()
|
||||
val keystoreProperties = Properties().apply {
|
||||
val propertiesFile = rootProject.file("key.properties")
|
||||
val propertiesFile = rootProject.file("key.${activeFlavorForSigning}.properties")
|
||||
if (propertiesFile.exists()) {
|
||||
load(propertiesFile.inputStream())
|
||||
}
|
||||
@@ -81,7 +93,7 @@ android {
|
||||
keyAlias = System.getenv()["CM_KEY_ALIAS"]
|
||||
keyPassword = System.getenv()["CM_KEY_PASSWORD"]
|
||||
} else {
|
||||
// Local development environment
|
||||
// Local development environment — loads from key.<flavor>.properties
|
||||
keyAlias = keystoreProperties["keyAlias"] as String?
|
||||
keyPassword = keystoreProperties["keyPassword"] as String?
|
||||
storeFile = keystoreProperties["storeFile"]?.let { file(it) }
|
||||
|
||||
9
apps/mobile/apps/staff/android/key.prod.properties
Normal file
9
apps/mobile/apps/staff/android/key.prod.properties
Normal file
@@ -0,0 +1,9 @@
|
||||
storePassword=krowwithus
|
||||
keyPassword=krowwithus
|
||||
keyAlias=krow_staff_prod
|
||||
storeFile=krow_with_us_staff_prod.jks
|
||||
|
||||
###
|
||||
### Staff Prod
|
||||
### SHA1: B3:9A:AE:EC:8D:A2:C8:88:5F:FA:AC:9B:31:0A:AC:F3:D6:7D:82:83
|
||||
### SHA256: 0C:F3:5F:B5:C5:DA:E3:94:E1:FB:9E:D9:84:4F:2D:4A:E5:1B:48:FB:33:A1:DD:F3:43:41:22:32:A4:9A:25:E8
|
||||
9
apps/mobile/apps/staff/android/key.stage.properties
Normal file
9
apps/mobile/apps/staff/android/key.stage.properties
Normal file
@@ -0,0 +1,9 @@
|
||||
storePassword=krowwithus
|
||||
keyPassword=krowwithus
|
||||
keyAlias=krow_staff_stage
|
||||
storeFile=krow_with_us_staff_stage.jks
|
||||
|
||||
###
|
||||
### Staff Stage
|
||||
### SHA1: E8:C4:B8:F5:5E:19:04:31:D6:E5:16:76:47:62:D0:5B:2F:F3:CE:05
|
||||
### SHA256: 25:55:68:E6:77:03:33:E1:D0:4E:F4:75:6E:6B:3D:3D:A2:DB:9B:2B:5E:AD:FF:CD:22:64:CE:3F:E8:AF:60:50
|
||||
Reference in New Issue
Block a user