/

Configurare e Ricompilare l'App Android

Punta l'app verso il tuo backend modificando un solo file, poi decidi se ti serve davvero una ricompilazione.

1. Modificare www/settings.ini

xCRUD_Nova_Android_App/www/settings.ini è composto da semplici coppie chiave = valore raggruppate in [sezioni]. Come dice il commento di intestazione del file stesso: "Modifica questo file e ricarica (o risincronizza l'app) - niente qui richiede una ricompilazione o una modifica al codice dell'app stessa."

[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
ChiaveSignificato
[backend] urlObbligatoria. Il server xCRUD Nova/Pro con cui comunica questa app - un URL assoluto, senza slash finale, es. https://yourdomain.com/xcrud_8. Tutto ciò che l'app mostra (login, poi la dashboard dal vivo) viene recuperato da questo unico URL. Lasciala vuota e l'app mostra un avviso di configurazione invece di una schermata vuota.
[backend] demo_username / demo_passwordCredenziali di login demo mostrate come suggerimento sotto il modulo di login. Lasciale entrambe vuote una volta puntato questo verso il tuo backend reale, non demo.
[branding] app_nameIl nome dell'app mostrato nell'interfaccia.
[branding] taglineUn breve slogan mostrato sotto il nome dell'app.
[purchase] urlMostrato come pulsante flottante di invito all'azione su ogni schermata. Impostala su un valore vuoto per nascondere completamente il pulsante - la maggior parte di chi self-hosta lo vorrà vuoto, dato che era una funzionalità marketing/demo di valutazione, non qualcosa di cui la copia installata di un acquirente ha tipicamente bisogno. Svuotarla disattiva anche il banner "LIVE DEMO".
[purchase] labelTesto del pulsante. Predefinito "Buy the xCRUD Nova server files" se lasciato vuoto mentre url è impostato.
[documentation] urlMostrato come secondo link flottante, appena sopra il pulsante di acquisto. Utile sia che questa copia sia una demo marketing sia l'installazione reale di un acquirente - impostala su un valore vuoto per nasconderlo.
[documentation] labelTesto del link, es. "Documentation".

2. Test rapido vs. ricompilazione completa

Due livelli di impegno molto diversi, a seconda di cosa è cambiato:

  • Test rapido - basta ricaricare. Modificare solo settings.ini non richiede alcuna ricompilazione né modifiche al codice dell'app - ricarica la WebView (o risincronizza l'app) e il nuovo URL del backend/branding ha effetto immediatamente.
  • Ricompilazione completa dell'APK. Necessaria solo quando modifichi elementi del guscio nativo controllati da Capacitor stesso - l'icona dell'app, la splash screen, i permessi, appId/appName in capacitor.config.json, o i file stessi del progetto Android. Sincronizza gli asset web nel progetto nativo, poi compila:
npx cap sync android

Seguita dalla compilazione dell'APK, sia tramite Android Studio (apri la cartella android/ e Build > Build APK), sia da riga di comando con Gradle:

cd android
./gradlew assembleDebug

3. CORS - di solito nulla da cambiare

L'XcrudConfig::$allowedOrigins del backend include già per impostazione predefinita https://localhost (l'origine WebView predefinita di Capacitor su Android) e http://localhost:8081 (l'origine propria del server di sviluppo desktop di remote_frontend_demo):

public static array $allowedOrigins = ['http://localhost:8081', 'https://localhost', 'http://localhost', 'http://127.0.0.1'];

Ciò significa che la maggior parte di chi self-hosta, puntando l'app standard verso il proprio backend, non ha bisogno di ALCUNA modifica CORS. Devi toccare $allowedOrigins solo se:

  • Personalizzi androidScheme/hostname di Capacitor allontanandoti dal predefinito, cambiando l'origine propria della WebView, oppure
  • Distribuisci il frontend statico www/ separatamente su un dominio reale (invece di caricarlo dall'interno del guscio dell'app), che poi chiama il backend cross-origin da quel dominio.

Vedi Frontend Disaccoppiati e CORS per il riferimento completo su $allowedOrigins/$forceApiUrl.