Platform Notes - iOS

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.

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:

  • Application display name and identifier
  • Required device capabilities
  • Supported user interface orientations
  • Icons and launch images

See the documentation on Information Property List File in iOS Developer Library for details.

When qmake is run, an 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 QMAKE_INFO_PLIST variable in your .pro file:

ios {
    QMAKE_INFO_PLIST = ios/AppInfo.plist
}

Application Assets

For files that cannot be bundled into Qt resources, QMAKE_BUNDLE_DATA qmake variable provides a way to specify a set of files to be copied into the application bundle. For example:

ios {
    fontFiles.files = fonts/*.ttf
    fontFiles.path = fonts
    QMAKE_BUNDLE_DATA += fontFiles
}

For image resources, an alternative way is to make use of asset catalogs in Xcode.

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 App Distribution Guide in iOS Developer Library for more information.