iOS / iPadOS (RoboVM) 🍎
O alvo iOS exige macOS + Xcode. A toolchain RoboVM faz AOT (Java → código nativo ARM).
Rodar
gradlew :ios:launchIPhoneSimulator
O IOSLauncher cria a aplicação: new IOSApplication(new Main(true, getCommandline()), configuration).
Device.platform será IPHONE ou IPAD.
Info.plist — permissões e metadados
Diferente do Android (permissão em runtime), no iOS as chaves de uso vão no Info.plist:
- descrições de uso de câmera, localização, Bluetooth, microfone (obrigatórias, senão o app é rejeitado);
- ícones e launch screen.
⚠️ Pontos sensíveis
WKWebView:evaluateJavaScripté restrito — a ponte JS↔Java doWebContaineré mais limitada que no Android/desktop.- Conta de desenvolvedor Apple + provisioning profile são necessários para rodar em device real (o simulador não exige).
- Build AOT é lento — mais um motivo para desenvolver no desktop e só validar no iOS.
Boas práticas
- Preencha todas as chaves de uso no
Info.plistantes de submeter (rejeição é comum por isso). - Teste no simulador cedo; deixe o device real para validação final (provisioning).
Erros comuns
- Faltar uma chave de uso no
Info.plist(crash ao acessar o recurso, ou rejeição na App Store). - Assumir
evaluateJavaScriptcompleto noWKWebView(é restrito).
Veja também
Esta página foi útil?Obrigado pelo feedback!