94a432b14d
- Remove external android-signing.gradle.kts, inline keystore config into app/build.gradle.kts - Update compileSdk and targetSdk to 36 - Fix version format in package.json (v0.1 → 0.1.0)
61 lines
2.0 KiB
Bash
Executable File
61 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Patch the generated Android build.gradle.kts with signing + per-arch release builds.
|
|
# Run this after `tauri android init` if the gen/android/ directory was regenerated.
|
|
set -euo pipefail
|
|
|
|
BUILD_FILE="src-tauri/gen/android/app/build.gradle.kts"
|
|
|
|
if [ ! -f "$BUILD_FILE" ]; then
|
|
echo "Error: $BUILD_FILE not found. Run 'tauri android init' first."
|
|
exit 1
|
|
fi
|
|
|
|
if grep -q "keystoreProperties" "$BUILD_FILE" 2>/dev/null; then
|
|
echo "Patch already applied."
|
|
exit 0
|
|
fi
|
|
|
|
# 1. Add keystore properties loading after the tauriProperties block
|
|
sed -i '/^val tauriProperties/,/^$/{
|
|
/^$/a\
|
|
\
|
|
// Release signing config\
|
|
val keystorePropertiesFile = java.io.File("/home/msksbr/Android/keystore.properties")\
|
|
val keystoreProperties = Properties().apply {\
|
|
if (keystorePropertiesFile.exists()) {\
|
|
keystorePropertiesFile.inputStream().use { load(it) }\
|
|
}\
|
|
}
|
|
}' "$BUILD_FILE"
|
|
|
|
# 2. Add signingConfigs block inside the android block, before buildTypes
|
|
sed -i '/buildTypes {/i\ signingConfigs {\
|
|
if (keystorePropertiesFile.exists()) {\
|
|
create("release") {\
|
|
storeFile = java.io.File(keystoreProperties["storeFile"] as String)\
|
|
storePassword = keystoreProperties["storePassword"] as String\
|
|
keyAlias = keystoreProperties["keyAlias"] as String\
|
|
keyPassword = keystoreProperties["keyPassword"] as String\
|
|
}\
|
|
}\
|
|
}\
|
|
' "$BUILD_FILE"
|
|
|
|
# 3. Add signingConfig to the release buildType
|
|
sed -i '/getByName("release") {/a\ if (keystorePropertiesFile.exists()) {\
|
|
signingConfig = signingConfigs.getByName("release")\
|
|
}' "$BUILD_FILE"
|
|
|
|
# 4. Add per-arch release APK build task dependency
|
|
cat >> "$BUILD_FILE" << 'TASKDEP'
|
|
|
|
// Also build per-architecture release APKs when universal release is built
|
|
tasks.whenTaskAdded {
|
|
if (name == "assembleUniversalRelease") {
|
|
dependsOn("assembleArm64Release", "assembleArmRelease")
|
|
}
|
|
}
|
|
TASKDEP
|
|
|
|
echo "Signing config patched into $BUILD_FILE"
|