Files
zwischenablage-server/client-android/app/build.gradle
T
duffyduckandClaude Opus 5.5 af51ef5701 Release-Skript mit automatischer Versionierung und Docker-Builds
- scripts/release.py: Version (patch/minor/major) automatisch hochzaehlen, CHANGELOG
  abschliessen, committen, taggen; --build baut alle Pakete in Docker
- docker-build/: Build-Container fuer Windows (Wine + PyInstaller + Inno Setup),
  Linux und Android; Server-Image als docker-save-Archiv
- Versionsanzeige im Desktop-Client und in der Android-App
- Feste Android-Release-Signatur aus secrets/ (nicht im Git)
- Windows-Icon im Repo, damit der Wine-Build ohne Qt-Fenster auskommt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:45:17 +02:00

67 lines
2.1 KiB
Groovy

plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
// Release-Signatur: secrets/android-keystore.properties (wird von scripts/release.py beim ersten
// Build erzeugt, nicht im Git). Fehlt die Datei, wird mit dem Debug-Schluessel signiert.
def keystoreProps = new Properties()
def keystoreFile = rootProject.file('../secrets/android-keystore.properties')
if (keystoreFile.exists()) keystoreFile.withInputStream { keystoreProps.load(it) }
android {
namespace 'de.netclip.app'
compileSdk 35
signingConfigs {
release {
if (keystoreFile.exists()) {
storeFile rootProject.file('../secrets/' + keystoreProps['storeFile'])
storePassword keystoreProps['storePassword']
keyAlias keystoreProps['keyAlias']
keyPassword keystoreProps['keyPassword']
}
}
}
defaultConfig {
applicationId "de.netclip.app"
minSdk 26
targetSdk 35
versionCode 1
versionName "1.0.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig keystoreFile.exists() ? signingConfigs.release : signingConfigs.debug
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
buildFeatures {
viewBinding true
}
testOptions {
unitTests.all { systemProperty 'interop', project.findProperty('interop') ?: '' }
unitTests.returnDefaultValues = true
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.json:json:20240303'
}