跳到内容
CrossFly 是 100% 开源在 GitHub 关注我们
CrossFlyCrossFly
开始使用

本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。

iOS / iPadOS (RoboVM) 🍎

iOS 目标平台需要 macOS + Xcode。RoboVM 工具链执行 AOT(Java → 原生 ARM 代码)。

运行

gradlew :ios:launchIPhoneSimulator

IOSLauncher 创建应用:new IOSApplication(new Main(true, getCommandline()), configuration)。 Device.platform 将为 IPHONE 或 IPAD。

Info.plist——权限和元数据

与 Android(运行时权限)不同,在 iOS 上使用键要写入 Info.plist:

  • 相机、定位、Bluetooth、麦克风的使用说明(必需,否则 应用会被拒绝);
  • 图标和启动画面(launch screen)。

⚠️ 敏感点

  • WKWebView:evaluateJavaScript 受限——WebContainer 的 JS↔Java 桥比 Android/桌面端更受限。
  • 在真机上运行需要 Apple 开发者账号 + provisioning profile(模拟器不需要)。
  • AOT 构建很慢——这也是应该在桌面端开发、只在 iOS 上 验证的又一个理由。

最佳实践

  • 提交前在 Info.plist 中填写所有使用键(因此被拒绝很常见)。
  • 尽早在模拟器上测试;把真机留给最终验证(provisioning)。

常见错误

  • 在 Info.plist 中缺少某个使用键(访问该功能时崩溃,或在 App Store 被拒绝)。
  • 假设 WKWebView 中的 evaluateJavaScript 是完整的(它是受限的)。

另请参阅

这个页面有帮助吗?