Watch-Sync zu minerva durch Android-Cleartext-Policy blockiert (gelöst via HTTPS app.doctate.de) #7
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beobachtung
Die Watch-App (
brummel-minerva) schien lokal mit dem Dev-Server verbunden. Tatsächlich waren das nur lokale Altdaten (eininstallDebug-Update behält das App-Datenverzeichnis). Der echte Defekt: DerSyncWorkerLooperreichte minerva überhaupt nicht. Logcat:Der Sync war damit komplett blockiert — Kernfunktionalität für die Alpha-Tester (BLOCKER-Schwere).
Ursache
Seit Android 9 (API 28) ist unverschlüsseltes HTTP standardmäßig blockiert.
app/src/main/res/xml/network_security_config.xmlerlaubt Cleartext nur für10.0.2.2(Emulator) und192.168.178.27(Dev-Laptop) — nicht fürminerva.lan. Dasbrummel-minerva-Profil zeigte aber aufhttp://minerva.lan:3000→ jeder Request wurde von der Policy verworfen.Strukturell dieselbe Drift-Klasse wie #6: statisch hartkodierte Hosts vs. profilgetriebener Server.
Lösung
Statt die Security-Policy aufzuweichen: app-Clients erreichen minerva nur noch über den bereits existierenden HTTPS-Endpunkt
https://app.doctate.de(OpenResty-TLS-Terminierung mit Let's-Encrypt-Cert → internminerva:3000; DNS via variomedia-CNAME → myfritz-DDNS). Ein öffentlich vertrauenswürdiges Cert greift über densystem-Trust-Store der Watch — keinenetwork_security_config.xml-Änderung nötig.Geänderte Profile (gitignored):
brummel-minerva.sh,krey-minerva.sh→SERVER_URL=https://app.doctate.de. Templateexample-profile.sh.example(im Repo) auf die HTTPS-Konvention nachgezogen.Verifikation (live an echter Watch, 2026-05-30)
BuildConfig.SERVER_URL = https://app.doctate.de.SyncWorkerLoop: burst-poll hit caseId=… → returning to default interval(erfolgreicher Server-Kontakt).X-API-Key-Auth über HTTPS gegenhttps://app.doctate.de/api/oneliners→ 200.Kein Code-Unit-Test (reiner Deployment-/Config-Defekt); Nachweis über Live-Logcat.