Die Android-App konfigurieren & neu bauen
Die App durch Bearbeiten einer einzigen Datei auf das eigene Backend ausrichten und dann entscheiden, ob ein Rebuild überhaupt nötig ist.
1. www/settings.ini bearbeiten
xCRUD_Nova_Android_App/www/settings.ini besteht aus einfachen key = value-Paaren, gruppiert in [Abschnitte]. Wie es der Header-Kommentar der Datei selbst formuliert: "Diese Datei bearbeiten und neu laden (oder die App neu synchronisieren) - nichts hier erfordert einen Rebuild oder eine Codeänderung an der App selbst."
[backend]
url = https://yourdomain.com/xcrud_8
demo_username = admin
demo_password = admin123
[branding]
app_name = xCRUD Nova
tagline = Your xCRUD Nova/Pro dashboard, on your phone.
[purchase]
url =
label =
[documentation]
url = https://yourdomain.com/xcrud_8/docs
label = Documentation
| Schlüssel | Bedeutung |
|---|---|
[backend] url | Erforderlich. Der xCRUD Nova/Pro-Server, mit dem diese App spricht - eine absolute URL, ohne abschließenden Schrägstrich, z. B. https://yourdomain.com/xcrud_8. Alles, was die App zeigt (Login, dann das Live-Dashboard), wird von genau dieser URL geladen. Leer lassen, und die App zeigt einen Einrichtungshinweis statt eines leeren Bildschirms. |
[backend] demo_username / demo_password | Demo-Login-Zugangsdaten, die als Hinweis unter dem Login-Formular angezeigt werden. Beide leer lassen, sobald Sie dies auf Ihr eigenes echtes, nicht-demo Backend ausrichten. |
[branding] app_name | Der in der UI angezeigte App-Name. |
[branding] tagline | Ein kurzer Slogan, der unter dem App-Namen angezeigt wird. |
[purchase] url | Wird als schwebende Call-to-Action-Schaltfläche auf jedem Bildschirm angezeigt. Auf einen leeren Wert setzen, um die Schaltfläche vollständig auszublenden - die meisten Selbst-Hoster werden sie leer lassen wollen, da sie eine Marketing-/Evaluierungs-Demo-Funktion war, kein Feature, das die eigene installierte Kopie eines Käufers typischerweise braucht. Ein Leeren schaltet außerdem das "LIVE DEMO"-Banner ab. |
[purchase] label | Button-Text. Standardmäßig "Buy the xCRUD Nova server files", falls leer gelassen, während url gesetzt ist. |
[documentation] url | Wird als zweiter schwebender Link direkt über dem Kauf-Button angezeigt. Nützlich, egal ob diese Kopie eine Marketing-Demo oder die echte Installation eines Käufers ist - auf einen leeren Wert setzen, um ihn auszublenden. |
[documentation] label | Link-Text, z. B. "Documentation". |
2. Schnelltest vs. vollständiger Rebuild
Zwei sehr unterschiedliche Aufwandsstufen, je nachdem, was sich geändert hat:
- Schnelltest - einfach neu laden. Wird nur
settings.inigeändert, ist weder ein Rebuild noch eine Codeänderung an der App nötig - die WebView neu laden (oder die App neu synchronisieren), und die neue Backend-URL/das neue Branding greift sofort. - Vollständiger APK-Rebuild. Nur nötig, wenn Sie native Hüllen-Eigenschaften ändern, die Capacitor selbst steuert - das App-Icon, den Splash-Screen, Berechtigungen,
appId/appNameincapacitor.config.json, oder die Android-Projektdateien selbst. Die Web-Assets in das native Projekt synchronisieren und dann bauen:
npx cap sync android
Anschließend die APK entweder über Android Studio bauen (den Ordner android/ öffnen und Build > Build APK), oder von der Kommandozeile aus mit Gradle:
cd android
./gradlew assembleDebug
3. CORS - meist ist nichts zu ändern
Das XcrudConfig::$allowedOrigins des Backends enthält standardmäßig bereits https://localhost (der Standard-WebView-Origin von Capacitor unter Android) und http://localhost:8081 (der eigene Origin des Desktop-remote_frontend_demo-Dev-Servers):
public static array $allowedOrigins = ['http://localhost:8081', 'https://localhost', 'http://localhost', 'http://127.0.0.1'];
Das bedeutet, dass die meisten Selbst-Hoster, die die Standard-App auf ihr eigenes Backend ausrichten, KEINE CORS-Änderungen benötigen. Sie müssen $allowedOrigins nur anfassen, wenn Sie:
- Capacitors
androidScheme/hostnamevom Standard abweichend anpassen, wodurch sich der Origin der WebView selbst ändert, oder - Das statische
www/-Frontend separat auf eine echte Domain bereitstellen (statt es aus der App-Hülle heraus zu laden), wodurch es das Backend von dieser Domain aus cross-origin aufruft.
Siehe Entkoppelte Frontends & CORS für die vollständige Referenz zu $allowedOrigins/$forceApiUrl.