@@ -177,7 +177,40 @@ jobs:
177177 keyPassword=$ANDROID_KEY_PASSWORD
178178 EOF
179179
180- echo "✅ Android signing configured - keystore and properties file created"
180+ # Check if signing configuration already exists to prevent duplicates
181+ if ! grep -q "keystorePropertiesFile" src-tauri/gen/android/app/build.gradle.kts; then
182+ # Modify the existing build.gradle.kts file directly
183+ cat >> src-tauri/gen/android/app/build.gradle.kts << 'GRADLE_EOF'
184+
185+ // Load keystore properties for signing
186+ val keystorePropertiesFile = rootProject.file("key.properties")
187+ val keystoreProperties = java.util.Properties()
188+ if (keystorePropertiesFile.exists()) {
189+ keystorePropertiesFile.inputStream().use { keystoreProperties.load(it) }
190+
191+ android {
192+ signingConfigs {
193+ create("release") {
194+ keyAlias = keystoreProperties.getProperty("keyAlias")
195+ keyPassword = keystoreProperties.getProperty("keyPassword")
196+ storeFile = file(keystoreProperties.getProperty("storeFile"))
197+ storePassword = keystoreProperties.getProperty("storePassword")
198+ }
199+ }
200+ buildTypes {
201+ getByName("release") {
202+ signingConfig = signingConfigs.getByName("release")
203+ }
204+ }
205+ }
206+ }
207+ GRADLE_EOF
208+ echo "✅ Signing configuration added"
209+ else
210+ echo "⚠️ Signing configuration already exists, skipping"
211+ fi
212+
213+ echo "✅ Android signing configured"
181214 env :
182215 ANDROID_KEYSTORE_BASE64 : ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
183216 ANDROID_KEYSTORE_PASSWORD : ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
@@ -188,9 +221,9 @@ jobs:
188221 run : |
189222 cd src-tauri
190223 if [[ -n "$ANDROID_KEYSTORE_BASE64" ]]; then
191- echo "🔨 Building signed release APK and AAB..."
224+ echo "🔨 Building signed release APK and AAB..."
192225 else
193- echo "⚠️ No signing keys provided - building unsigned release"
226+ echo "⚠️ No signing keys provided - building unsigned release"
194227 fi
195228
196229 cargo tauri android build --target aarch64 --verbose
0 commit comments