diff --git a/.gitignore b/.gitignore index cf94f39..473a813 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ android/*.iml android/keystore.properties android/*.jks android/*.keystore +android/app/ci-keystore.jks # iOS ios/Frameworks/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 1257d8e..03732d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [1.5.0-hotfix2] - 2026-01-02 + +### Fixed +- **App Signing**: Fixed CI/CD signing configuration + ## [1.5.0-hotfix] - 2026-01-02 ### Important Notice diff --git a/SpotiFLAC-v1.5.0-hotfix-arm64.apk b/SpotiFLAC-v1.5.0-hotfix-arm64.apk new file mode 100644 index 0000000..4b4fed6 Binary files /dev/null and b/SpotiFLAC-v1.5.0-hotfix-arm64.apk differ diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index c64f1f5..15409e4 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -12,6 +12,14 @@ if (keystorePropertiesFile.exists()) { 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 { namespace = "com.zarz.spotiflac" compileSdk = flutter.compileSdkVersion @@ -32,20 +40,14 @@ android { signingConfigs { create("release") { if (keystorePropertiesFile.exists()) { + // Local build: use keystore.properties storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String - } else if (System.getenv("KEYSTORE_BASE64") != null) { - // CI/CD: decode keystore from base64 environment variable - val keystoreFile = file("${project.buildDir}/keystore.jks") - if (!keystoreFile.exists()) { - keystoreFile.parentFile.mkdirs() - keystoreFile.writeBytes( - java.util.Base64.getDecoder().decode(System.getenv("KEYSTORE_BASE64")) - ) - } - storeFile = keystoreFile + } else if (ciKeystoreFile.exists()) { + // CI/CD build: use decoded keystore + storeFile = ciKeystoreFile storePassword = System.getenv("KEYSTORE_PASSWORD") keyAlias = System.getenv("KEY_ALIAS") keyPassword = System.getenv("KEY_PASSWORD") diff --git a/lib/constants/app_info.dart b/lib/constants/app_info.dart index bcec34f..a9e53c9 100644 --- a/lib/constants/app_info.dart +++ b/lib/constants/app_info.dart @@ -1,8 +1,8 @@ /// App version and info constants /// Update version here only - all other files will reference this class AppInfo { - static const String version = '1.5.0-hotfix'; - static const String buildNumber = '15'; + static const String version = '1.5.0-hotfix2'; + static const String buildNumber = '16'; static const String fullVersion = '$version+$buildNumber'; static const String appName = 'SpotiFLAC'; diff --git a/pubspec.yaml b/pubspec.yaml index 18863ae..86fd2fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: spotiflac_android description: Download Spotify tracks in FLAC from Tidal, Qobuz & Amazon Music publish_to: 'none' -version: 1.5.0+15 +version: 1.5.0+16 environment: sdk: ^3.10.0