Qt QML应用在IOS工作缓慢,JIT被禁用

问题描述:

我正在开发QML基于iPhone的应用程序,在macbook上工作IOS 11(塞拉利昂)。我使用Qt 5.9.1构建,最新版本为xCode。一切工作正常,但在“应用程序输出”有警告 “QIT禁用JIT。属性绑定和动画将非常缓慢。请访问https://wiki.qt.io/V4了解您的平台可能的解决方案。” 我试图通过编辑qv4global_p.h文件启用JIT,如上面的网页所述,但它没有帮助。 我使用IOS模拟器(iPhone 6,7和IOS 11.0)进行调试和测试,并且动画效果(例如转换,不透明度更改,按钮点击)真的很慢并且滞后,有关手动更新输出控制台中的qml对象的消息,就像“正在手动更新..”。我没有iPhone,所以我不能检查真实设备上是否存在同样的问题,但似乎是这样,因为我已经阅读过类似的主题,而且我没有找到任何信息。Qt QML应用在IOS工作缓慢,JIT被禁用

那么,有没有这个问题的任何解决方案,如何获得流畅,正确的qml控制行为的IOS?也许有商业许可的Qt Quick Compiler可以帮助解决这个问题?请帮助,真的卡在这里..

+0

是,Qt Quick的编译器应该真正帮助! – sk2212

你不能在你的qv4global_p.h上启用JIT,如果你这样做,你可以在你的设备上编译并运行你的应用程序插到你的mac上,但是当你拔掉它的时候,您的应用程序将停止并且不再运行,问题来自Apple,

3.3.2应用程序可能无法下载或安装可执行代码。如果所有脚本,代码和解释程序都打包在应用程序中并且没有下载,则只能在应用程序中使用解释的代码。前述的唯一例外是脚本和代码由Apple内置的WebKit框架下载和运行。

试用Qt商业许可的试用版并测试您的应用程序。 在我的情况下,经过一些测试,我已经构建了我的应用程序objectivC

+0

将尝试与试用许可证,谢谢。希望它会有所帮助,因为我希望我的应用程序也可以在Android上使用,并且我不熟悉swift或Objective-C。 –

所以我试图在真实设备上启动我的应用程序,它是安装了iOS 9.0的iPhone 6S,并且也更新到iOS 11.0.3以后。应用程序运行正常,至少我看不到任何滞后,性能不佳或动作缓慢,尽管有关于JIT的警告消息。希望它在使应用程序变得更复杂后能够完美工作,因为现在它只是没有任何有用后端的GUI。如果有可能在其他老版本的iPhone或平板电脑上检查此问题,我会在此处写入。附:在紧急情况下,我还没有尝试过Qt Quick Compiler。

在IOS不能使用JIT编译器,但你可以尝试编译时间提前:

http://doc.qt.io/qt-5/qtquick-deployment.html#qml-caching-for-deployment-preview