v1.5.0-hotfix2: Fix CI signing config

This commit is contained in:
zarzet
2026-01-02 03:51:41 +07:00
parent 33e8ddd758
commit 1b2ad4cdd5
6 changed files with 21 additions and 13 deletions
+1
View File
@@ -43,6 +43,7 @@ android/*.iml
android/keystore.properties android/keystore.properties
android/*.jks android/*.jks
android/*.keystore android/*.keystore
android/app/ci-keystore.jks
# iOS # iOS
ios/Frameworks/ ios/Frameworks/
+5
View File
@@ -1,5 +1,10 @@
# Changelog # Changelog
## [1.5.0-hotfix2] - 2026-01-02
### Fixed
- **App Signing**: Fixed CI/CD signing configuration
## [1.5.0-hotfix] - 2026-01-02 ## [1.5.0-hotfix] - 2026-01-02
### Important Notice ### Important Notice
Binary file not shown.
+12 -10
View File
@@ -12,6 +12,14 @@ if (keystorePropertiesFile.exists()) {
keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile)) keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile))
} }
// Decode keystore from base64 if running in CI
val ciKeystoreFile = file("${project.projectDir}/ci-keystore.jks")
if (System.getenv("KEYSTORE_BASE64") != null && !ciKeystoreFile.exists()) {
ciKeystoreFile.writeBytes(
java.util.Base64.getDecoder().decode(System.getenv("KEYSTORE_BASE64"))
)
}
android { android {
namespace = "com.zarz.spotiflac" namespace = "com.zarz.spotiflac"
compileSdk = flutter.compileSdkVersion compileSdk = flutter.compileSdkVersion
@@ -32,20 +40,14 @@ android {
signingConfigs { signingConfigs {
create("release") { create("release") {
if (keystorePropertiesFile.exists()) { if (keystorePropertiesFile.exists()) {
// Local build: use keystore.properties
storeFile = file(keystoreProperties["storeFile"] as String) storeFile = file(keystoreProperties["storeFile"] as String)
storePassword = keystoreProperties["storePassword"] as String storePassword = keystoreProperties["storePassword"] as String
keyAlias = keystoreProperties["keyAlias"] as String keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String keyPassword = keystoreProperties["keyPassword"] as String
} else if (System.getenv("KEYSTORE_BASE64") != null) { } else if (ciKeystoreFile.exists()) {
// CI/CD: decode keystore from base64 environment variable // CI/CD build: use decoded keystore
val keystoreFile = file("${project.buildDir}/keystore.jks") storeFile = ciKeystoreFile
if (!keystoreFile.exists()) {
keystoreFile.parentFile.mkdirs()
keystoreFile.writeBytes(
java.util.Base64.getDecoder().decode(System.getenv("KEYSTORE_BASE64"))
)
}
storeFile = keystoreFile
storePassword = System.getenv("KEYSTORE_PASSWORD") storePassword = System.getenv("KEYSTORE_PASSWORD")
keyAlias = System.getenv("KEY_ALIAS") keyAlias = System.getenv("KEY_ALIAS")
keyPassword = System.getenv("KEY_PASSWORD") keyPassword = System.getenv("KEY_PASSWORD")
+2 -2
View File
@@ -1,8 +1,8 @@
/// App version and info constants /// App version and info constants
/// Update version here only - all other files will reference this /// Update version here only - all other files will reference this
class AppInfo { class AppInfo {
static const String version = '1.5.0-hotfix'; static const String version = '1.5.0-hotfix2';
static const String buildNumber = '15'; static const String buildNumber = '16';
static const String fullVersion = '$version+$buildNumber'; static const String fullVersion = '$version+$buildNumber';
static const String appName = 'SpotiFLAC'; static const String appName = 'SpotiFLAC';
+1 -1
View File
@@ -1,7 +1,7 @@
name: spotiflac_android name: spotiflac_android
description: Download Spotify tracks in FLAC from Tidal, Qobuz & Amazon Music description: Download Spotify tracks in FLAC from Tidal, Qobuz & Amazon Music
publish_to: 'none' publish_to: 'none'
version: 1.5.0+15 version: 1.5.0+16
environment: environment:
sdk: ^3.10.0 sdk: ^3.10.0