tauri 一键 apk 签名脚本

Tauri 项目编译 Android 安装包时 (tauri android build --apk (--target aarch64)) 若无代码签名将会失败/apk 无法安装,需要配置签名:

可使用如下一键脚本
cd 到 tauri 项目目录,确保 Android 项目已经初始化了 (pnpm/cargo tauri android init),then:

mkdir .android_key
keytool -genkey -v -keystore .android_key/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -keypass tauripass -storepass tauripass -dname CN=tauriapp
echo 'password=tauripass
keyAlias=upload
storeFile=../../../../.android_key/upload-keystore.jks
' > src-tauri/gen/android/keystore.properties
sed -i '1s/^/import java.io.FileInputStream\n/' src-tauri/gen/android/app/build.gradle.kts
sed -i '/buildTypes {/i \
    signingConfigs { \
          create("release") { \
              val keystorePropertiesFile = rootProject.file("keystore.properties") \
              val keystoreProperties = Properties() \
              if (keystorePropertiesFile.exists()) { \
                  keystoreProperties.load(FileInputStream(keystorePropertiesFile)) \
              } \
              keyAlias = keystoreProperties["keyAlias"] as String \
              keyPassword = keystoreProperties["password"] as String \
              storeFile = file(keystoreProperties["storeFile"] as String) \
              storePassword = keystoreProperties["password"] as String \
            } \
    }' src-tauri/gen/android/app/build.gradle.kts
sed -i '/isMinifyEnabled = true/a \
            signingConfig = signingConfigs.getByName("release")' src-tauri/gen/android/app/build.gradle.kts

记得替换密码 (tauripass)