- 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>
67 lines
2.1 KiB
Groovy
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'
|
|
}
|