build(apk): Publish-Skript reicht den App-Link-Host an Gradle durch
Der Host steht fest im Manifest und muss beim Bauen mitgegeben werden. Das Publish-Skript rief Gradle bisher ohne ihn auf, ein so veroeffentlichtes APK haette also den Platzhalter aus build.gradle.kts getragen und geteilte Links waeren im Browser gelandet statt in der App. NOVASONIC_HOST (und optional NOVASONIC_HOST2) kommen aus scripts/.env.release; fehlt der Wert, warnt das Skript deutlich, statt still das Falsche zu bauen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
94fdc3274e
commit
5f1650b82a
2 files changed
+29
-1
No files matched your search
@@ -40,6 +40,20 @@ keytool -list -v -keystore <dein-keystore>.jks -alias <alias> | grep SHA256
|
||||
Die Datei muss unter `https://<deine-web-adresse>/.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
|
||||
|
||||
+15
-1
@@ -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://<host>/?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.');
|
||||
|
||||
Reference in new issue
Block a user