diff --git a/docs/share-links.md b/docs/share-links.md index 26b673e..b00cef0 100644 --- a/docs/share-links.md +++ b/docs/share-links.md @@ -40,6 +40,20 @@ keytool -list -v -keystore .jks -alias | grep SHA256 Die Datei muss unter `https:///.well-known/assetlinks.json` erreichbar sein — sie liegt im `public/`-Verzeichnis und wird vom Frontend-Image mit ausgeliefert. +## APK veröffentlichen + +`npm run publish-apk` gibt den Host jetzt an Gradle weiter. Dafür in `scripts/.env.release` +ergänzen (die Datei wird nie eingecheckt): + +``` +NOVASONIC_HOST=music.deine-domain.de +# optional während eines Domainwechsels: +# NOVASONIC_HOST2=alt.deine-domain.de +``` + +Fehlt der Eintrag, warnt das Skript und baut mit dem Platzhalter weiter — das APK ist dann +installierbar, aber eingehende Links öffnen im Browser statt in der App. + ## Domain wechseln **Ausgehende Links** folgen der Einstellung „NovaSonic Web-Adresse" — Adresse ändern, fertig, kein diff --git a/scripts/publish-apk.mjs b/scripts/publish-apk.mjs index 05b23fc..6cc23fe 100644 --- a/scripts/publish-apk.mjs +++ b/scripts/publish-apk.mjs @@ -37,6 +37,12 @@ const GITEA_REPO = process.env.GITEA_REPO || ''; const GITEA_TOKEN = process.env.GITEA_TOKEN || ''; const TAG = process.env.GITEA_APK_TAG || 'apk-latest'; const TASK = process.env.APK_GRADLE_TASK || 'assembleDebug'; +// Host fuer die App-Links geteilter Songs (https:///?song=…). Steht fest im Manifest, muss +// also beim BAUEN mitgegeben werden — ohne ihn traegt das APK den Platzhalter aus build.gradle.kts +// und eingehende Links landen im Browser statt in der App. NOVASONIC_HOST2 optional fuer einen +// Domainwechsel (beide Adressen oeffnen dann in der App), siehe docs/share-links.md. +const HOST = process.env.NOVASONIC_HOST || ''; +const HOST2 = process.env.NOVASONIC_HOST2 || ''; function die(msg) { console.error(`\n✖ ${msg}`); process.exit(1); } if (!GITEA_URL || !GITEA_REPO || !GITEA_TOKEN) @@ -68,7 +74,15 @@ const relBody = `versionCode=${versionCode}\nversionName=${version}`; const isWin = process.platform === 'win32'; const gradlew = join(root, 'android', isWin ? 'gradlew.bat' : 'gradlew'); console.log(`▶ Baue APK: ${TASK} …`); -const build = spawnSync(gradlew, [`:app:${TASK}`], { +if (!HOST) { + console.warn('⚠ NOVASONIC_HOST ist nicht gesetzt — das APK bekommt den Platzhalter-Host aus'); + console.warn(' build.gradle.kts, geteilte Links oeffnen dann NICHT in der App.'); + console.warn(' In scripts/.env.release eintragen: NOVASONIC_HOST=music.deine-domain.de'); +} +const gradleArgs = [`:app:${TASK}`]; +if (HOST) gradleArgs.push(`-PnovasonicHost=${HOST}`); +if (HOST2) gradleArgs.push(`-PnovasonicHost2=${HOST2}`); +const build = spawnSync(gradlew, gradleArgs, { cwd: join(root, 'android'), stdio: 'inherit', shell: isWin, }); if (build.status !== 0) die('Gradle-Build fehlgeschlagen.');