Saltar al contenido
CrossFly es 100% open sourceSíguenos en GitHub
CrossFlyCrossFly
Empezar

Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.

iOS / iPadOS (RoboVM) 🍎

El destino iOS exige macOS + Xcode. La toolchain RoboVM hace AOT (Java → código nativo ARM).

Ejecutar

gradlew :ios:launchIPhoneSimulator

El IOSLauncher crea la aplicación: new IOSApplication(new Main(true, getCommandline()), configuration). Device.platform será IPHONE o IPAD.

Info.plist — permisos y metadatos

A diferencia de Android (permiso en runtime), en iOS las claves de uso van en el Info.plist:

  • descripciones de uso de cámara, ubicación, Bluetooth, micrófono (obligatorias, si no el app es rechazado);
  • iconos y launch screen.

⚠️ Puntos sensibles

  • WKWebView: evaluateJavaScript está restringido — el puente JS↔Java del WebContainer es más limitado que en Android/desktop.
  • Cuenta de desarrollador Apple + provisioning profile son necesarios para ejecutar en dispositivo real (el simulador no lo exige).
  • El build AOT es lento — un motivo más para desarrollar en el desktop y solo validar en iOS.

Buenas prácticas

  • Rellena todas las claves de uso en el Info.plist antes de enviar (el rechazo por esto es común).
  • Prueba en el simulador temprano; deja el dispositivo real para la validación final (provisioning).

Errores comunes

  • Faltar una clave de uso en el Info.plist (crash al acceder al recurso, o rechazo en la App Store).
  • Asumir evaluateJavaScript completo en el WKWebView (está restringido).

Ver también

¿Te resultó útil esta página?