Set up apk signing

This commit is contained in:
Joscha 2025-01-23 02:04:15 +01:00
parent e6b16ce067
commit de98676cd0
3 changed files with 49 additions and 24 deletions

View file

@ -63,29 +63,37 @@ jobs:
target/release/tta-cli.exe target/release/tta-cli.exe
target/release/tta-app.exe target/release/tta-app.exe
# TODO: https://v2.tauri.app/distribute/sign/android/ build-android:
# build-android: runs-on: ubuntu-latest
# runs-on: ubuntu-latest steps:
# steps: - name: Check out repo
# - name: Check out repo uses: actions/checkout@v4
# uses: actions/checkout@v4
# - name: Set up pnpm - name: Set up pnpm
# uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
# with: with:
# version: 10 version: 10
# # https://v2.tauri.app/start/prerequisites/#android # https://v2.tauri.app/start/prerequisites/#android
# - name: Set up rust - name: Set up Rust
# run: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android run: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
# - name: Build # https://v2.tauri.app/distribute/sign/android/
# run: | - name: Set up Android signing
# export NDK_HOME="$ANDROID_NDK_HOME" run: |
# ./build_android cd tta-app/src-tauri/gen/android
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > key.properties
echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> key.properties
base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks
echo "storeFile=$RUNNER_TEMP/keystore.jks" >> key.properties
# - name: Upload - name: Build
# uses: actions/upload-artifact@v4 run: |
# with: export NDK_HOME="$ANDROID_NDK_HOME"
# name: tta-android ./build_android
# path: target/release/tta-app.apk
- name: Upload
uses: actions/upload-artifact@v4
with:
name: tta-android
path: target/release/tta-app.apk

View file

@ -7,6 +7,6 @@ pnpm tauri android build --apk
popd popd
mkdir -p target/release/ mkdir -p target/release/
mv tta-app/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk target/release/tta-app.apk mv tta-app/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk target/release/tta-app.apk
echo "tta-app.apk can be found at target/release/tta-app.apk" echo "tta-app.apk can be found at target/release/tta-app.apk"

View file

@ -1,3 +1,4 @@
import java.io.FileInputStream
import java.util.Properties import java.util.Properties
plugins { plugins {
@ -24,19 +25,35 @@ android {
versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt()
versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0")
} }
signingConfigs {
create("release") {
val keystorePropertiesFile = rootProject.file("key.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
}
}
buildTypes { buildTypes {
getByName("debug") { getByName("debug") {
manifestPlaceholders["usesCleartextTraffic"] = "true" manifestPlaceholders["usesCleartextTraffic"] = "true"
isDebuggable = true isDebuggable = true
isJniDebuggable = true isJniDebuggable = true
isMinifyEnabled = false isMinifyEnabled = false
packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") packaging {
jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
jniLibs.keepDebugSymbols.add("*/x86/*.so") jniLibs.keepDebugSymbols.add("*/x86/*.so")
jniLibs.keepDebugSymbols.add("*/x86_64/*.so") jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
} }
} }
getByName("release") { getByName("release") {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true isMinifyEnabled = true
proguardFiles( proguardFiles(
*fileTree(".") { include("**/*.pro") } *fileTree(".") { include("**/*.pro") }