原文链接:Morten Johan Sørvig - Qt for iOS Preview
我们非常高兴能够把Qt带到一个新的平台。Qt计划在5.2正式支持iOS平台,发布时间大约是2013年年底。这次发布的内容目前还没有完全确定下来:可用的资源、平台或者应用程序商店的约束以及Qt现有的代码都在影响这个项目。本篇博客大概描述一下当前计划。
Qt 5.1将会包含一个预览版——上周五完成了一次合并。(译者注:dev分支是5.1的主流代码,上周五完成了一次从ios分支到dev分支的合并。)今天大家可以通过编译Qt源代码来看一看了。详细情况请参考下面的“让我们开始吧”一节。
开发和部署是在Xcode下完成的。目前所支持的工作流程是:维护一个基于.pro文件的项目,把它导出到Xcode(当项目设置发生变化时再次导出),然后使用Xcode编译和部署。源码编辑通常可以在任何编辑器下完成。
要理解不同的Qt模块所能获得的支持水平,需要对Qt 5的架构有所了解。在Qt 5中,有一套所有平台都实现了的公共API(Qt平台抽象——QPA)。Qt的iOS版项目的绝大多数工作都发生在这里,并且这也是整个团队将要支持的代码基础。QPA层同时支持着窗口部件(Widgets)和QML(1和2)。
Qt Mac风格(style)使用的是有OS X提供的HITheme API来绘制具有本地观感的UI元素。然而在iOS上没有这样的API,这也就是说创建一个像QMacStyle一样的QiOSStyle是不可能的。像Fusion风格这样的跨平台风格还是可用的。未来有关风格的工作将主要围绕Qt Quick 2的控件进行。
Qt Quick 2使用了V8 JavaScript引擎,因为平台政策以及V8使用了JIT编译器所导致的技术限制,它不能被部署到iOS平台上。这也就是说现在还没有iOS平台上的Qt Quick 2。这个问题我们已经知道,并且正在努力寻找解决方案。
clone qtbase
git clone git://gitorious.org/qt/qtbase.git qtbase-ios
cd qtbase-ios/
git checkout dev
[可选(当前的开发分支): git checkout ios]
configure -xplatform unsupported/macx-ios-clang -developer-build -nomake examples -nomake tests -release [-sdk iphonesimulator]
make
git clone git://github.com/msorvig/qt-ios-demo.git
cd qt-ios-demo
../qtbase-ios/bin/qmake
open qt-ios-demo.xcodeproj
你需要完整的Qt源代码,请参考构建来自Git的Qt 5。然后构建QtScript和QtQuick1两个模块:
cd qtscript; ../qtbase/bin/qmake; make; cd ..
cd qtquick1; ../qtbase/bin/qmake; make; cd ..