Configurar y recompilar la app de Android
Apunta la app a tu propio backend editando un archivo, y luego decide si realmente necesitas una recompilación.
1. Editar www/settings.ini
xCRUD_Nova_Android_App/www/settings.ini son pares clave = valor simples agrupados en [secciones]. Como dice el propio comentario de cabecera del archivo: "Edita este archivo y recarga (o vuelve a sincronizar la app) - nada aquí necesita una recompilación ni un cambio de código en la propia app."
[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
| Clave | Significado |
|---|---|
[backend] url | Obligatorio. El servidor xCRUD Nova/Pro con el que habla esta app - una URL absoluta, sin barra final, p. ej. https://yourdomain.com/xcrud_8. Todo lo que muestra la app (inicio de sesión y luego el panel en vivo) se obtiene de esta única URL. Déjalo en blanco y la app muestra un aviso de configuración en lugar de una pantalla en blanco. |
[backend] demo_username / demo_password | Credenciales de inicio de sesión de demostración mostradas como pista debajo del formulario de inicio de sesión. Déjalas ambas en blanco en cuanto apuntes esto a tu propio backend real, sin ser de demostración. |
[branding] app_name | El nombre de la app mostrado en la interfaz. |
[branding] tagline | Un lema corto mostrado debajo del nombre de la app. |
[purchase] url | Se muestra como un botón flotante de llamada a la acción en cada pantalla. Establécelo a un valor vacío para ocultar el botón por completo - la mayoría de los que alojan su propia instancia querrán dejarlo en blanco, ya que era una función de marketing/demo de evaluación, no algo que normalmente necesite la copia instalada de un comprador. Dejarlo en blanco también desactiva el banner "LIVE DEMO". |
[purchase] label | Texto del botón. Por defecto es "Buy the xCRUD Nova server files" si se deja en blanco mientras url está establecido. |
[documentation] url | Se muestra como un segundo enlace flotante, justo encima del botón de compra. Útil tanto si esta copia es una demo de marketing como si es la instalación real de un comprador - establécelo a un valor vacío para ocultarlo. |
[documentation] label | Texto del enlace, p. ej. "Documentation". |
2. Prueba rápida frente a recompilación completa
Dos niveles de esfuerzo muy distintos, según lo que haya cambiado:
- Prueba rápida - solo recargar. Cambiar únicamente
settings.inino necesita recompilación ni cambio de código en la app - recarga el WebView (o vuelve a sincronizar la app) y la nueva URL de backend/marca surte efecto de inmediato. - Recompilación completa del APK. Necesaria solo cuando cambias cosas de la carcasa nativa que controla el propio Capacitor - el icono de la app, la pantalla de bienvenida, los permisos,
appId/appNameencapacitor.config.json, o los propios archivos del proyecto Android. Sincroniza los recursos web en el proyecto nativo y luego compila:
npx cap sync android
Seguido de compilar el APK, ya sea a través de Android Studio (abre la carpeta android/ y Build > Build APK), o desde la línea de comandos con Gradle:
cd android
./gradlew assembleDebug
3. CORS - normalmente nada que cambiar
El XcrudConfig::$allowedOrigins del backend ya incluye por defecto https://localhost (el origen predeterminado del WebView de Capacitor en Android) y http://localhost:8081 (el propio origen del servidor de desarrollo de escritorio de remote_frontend_demo):
public static array $allowedOrigins = ['http://localhost:8081', 'https://localhost', 'http://localhost', 'http://127.0.0.1'];
Eso significa que la mayoría de quienes alojan su propia instancia y apuntan la app de fábrica a su propio backend no necesitan NINGÚN cambio de CORS. Solo hace falta tocar $allowedOrigins si:
- Personalizas el
androidScheme/hostnamede Capacitor alejándolo del valor por defecto, cambiando el propio origen del WebView, o - Despliegas el frontend estático
www/por separado en un dominio real (en lugar de cargarlo dentro de la carcasa de la app), que entonces llama al backend de forma cross-origin desde ese dominio.
Consulta Frontends desacoplados y CORS para la referencia completa de $allowedOrigins/$forceApiUrl.