diff options
Diffstat (limited to 'doc/src/platforms/ios.qdoc')
-rw-r--r-- | doc/src/platforms/ios.qdoc | 179 |
1 files changed, 177 insertions, 2 deletions
diff --git a/doc/src/platforms/ios.qdoc b/doc/src/platforms/ios.qdoc index 960556b2..b3bea824 100644 --- a/doc/src/platforms/ios.qdoc +++ b/doc/src/platforms/ios.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the documentation of the Qt Toolkit. @@ -92,7 +92,7 @@ We can then build Qt. This is done from the Qt 5 top directory, like so: - \code + \badcode > ./configure -xplatform macx-ios-clang -release \endcode @@ -150,4 +150,179 @@ find it \l{https://qt-project.org/wiki/Mixing_C_and_ObjectiveC_Code}{here}. + \section1 Related Topics + + The following topics provide more details about Qt for iOS: + \list + \li \l {Porting to iOS}{Porting a Qt Quick Application} + \li \l {Platform Notes -iOS}{Platform Notes} + \endlist +*/ +/*! + \page porting-to-ios.html + \title Porting to iOS + \brief Provides instructions to port your existing Qt application to iOS. + + In this section, we are going to port an existing Qt application to + \l{Qt for iOS}{iOS} and deploy it to the device. + + Most Qt applications should be portable to iOS with ease, unless they + depend on a specific hardware or software feature not supported on iOS. + A major part of the porting effort consists of ensuring that all the + application's assets (for example, QML files, images, and icons) are + deployed correctly to the device. + + \include porting-notes.qdocinc using resources + + The following step-by-step instructions guide you to port an existing Qt Quick + application to iOS using the qrc approach: + + \list 1 + \li Open the existing project in Qt Creator and configure it with + \e {iOS} or \e {iOS Simulator} kit. For more information, see + \l{Qt Creator: Configuring Projects}. + + \li Update all local directory imports in the \c{qml} files to use a local + namespace. For example, to import the QML documents in the "contents" + directory relative to \c{main.qml}, use the following import statement: + + \code + import "contents" as Contents + \endcode + + \li Identify all the resources used by your application and add them to one + or more qrc files. + Qt Creator updates your qmake project file with the \c RESOURCES + variable, listing the qrc files you added. + + \li To load or refer to the resources in the qrc file from a C++ file, + use the "\c{qrc:}" prefix for the URL. For example: + + \code + QQuickView viewer; + viewer.setSource(QUrl("qrc:qml/main.qml")); + viewer.show(); + \endcode + + \note QML documents can refer to files in the resources simply by + using the relative path to the document. Such references do not + require the "\c{qrc:}" or "\c{:/}" prefix. + + \li Update the "Run" settings for your project as described in the + \l{Qt Creator: Specifying Run Settings} + + \li If your application uses imports or plugins which depend on special Qt + modules, these Qt modules should be added to the .pro file. For example, if + your application uses the \l{Qt Multimedia} import in QML, you should add + the following to your .pro file: + + \badcode + QT += multimedia + \endcode + + In Qt for iOS, everything is compiled statically and placed into the application + bundle. The applications are "sandboxed" inside their bundles and cannot make use + of shared object files. Because of this, also the plugins used by the Qt modules + need to be statically linked. To do this, define the required plugins using the + \l QTPLUGIN variable. For example, to use the camera APIs from Qt Multimedia: + + \badcode + QTPLUGIN += qavfcamera + \endcode + + See \l {http://qt-project.org/wiki/QtMultimedia_iOS}{Qt Multimedia on iOS} + for information on other Qt Multimedia plugins. If your project uses APIs + from \l {Qt Sensors}, use the following: + + \badcode + QT += sensors + QTPLUGIN += qtsensors_ios + \endcode + + \li Save the changes to your project and run the application. + \endlist + + Qt Creator deploys your application on the iOS device, if the + device is detected and configured correctly in Xcode. It is also possible to + test the application in iOS Simulator. For more information, see + \l {http://qt-project.org/doc/qtcreator/creator-developing-ios.html}{Connecting iOS Devices}. + + \sa {Platform Notes - iOS} +*/ + +/*! + \page platform-notes-ios.html + \title Platform Notes - iOS + \brief This page contains information about building Qt applications for and running them on the iOS platform. + + \section1 Deployment + + Developing, building, running, and debugging a Qt for iOS application can all be done + with Qt Creator on Mac OS X. The toolchain is provided by Apple's Xcode, + and running qmake on a project targeted for iOS will also generate an + Xcode project file (.xcodeproj), with initial application settings. As Qt + Creator does not provide an interface for managing all of the settings specific + to iOS platform, it is often necessary to adjust them in Xcode directly. + Checking that the application is configured correctly is especially important + before submitting an application for publishing in Apple's App Store. + + \target Info.plist + \section2 Information Property List Files + + Information property list file (Info.plist) on iOS and Mac OS X is used for configuring + an application bundle. These configuration settings include: + + \list + \li Application display name and identifier + \li Required device capabilities + \li Supported user interface orientations + \li Icons and launch images + \endlist + + See the documentation on \l {https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html} + {Information Property List File} in iOS Developer Library for details. + + When qmake is run, an \c Info.plist file is generated with appropriate default values. + + It is advisable to replace the generated Info.plist with your own copy, to prevent + it from being overwritten the next time qmake is run. You can define a custom information + property list with \l QMAKE_INFO_PLIST variable in your .pro file: + + \badcode + ios { + QMAKE_INFO_PLIST = ios/AppInfo.plist + } + \endcode + + \section2 Application Assets + + For files that cannot be bundled into Qt resources, \l QMAKE_BUNDLE_DATA qmake variable + provides a way to specify a set of files to be copied into the application bundle. For + example: + + \badcode + ios { + fontFiles.files = fonts/*.ttf + fontFiles.path = fonts + QMAKE_BUNDLE_DATA += fontFiles + } + \endcode + + For image resources, an alternative way is to make use of \l {https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html} + {asset catalogs} in Xcode. + + \section1 Publishing to Apple App Store + + Verifying that your Qt for iOS application is ready for publishing to App Store is done + directly in Xcode. Qt Creator does not provide an interface for managing all of the + settings in an Xcode project configuration. + + The application should be tested on a variety of iOS versions and devices, depending on what + it's targeted to support. The minimum deployment target for Qt applications is iOS 5.0. + + The actual publishing process involves creating a distribution certificate and a provision profile, + creating a signed archive of your application, and running a set of validation tests on it. + + See the \l {https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html} + {App Distribution Guide} in iOS Developer Library for more information. */ |