Apple Platform CMake Opt-outs
When qt_finalize_target() finalizes an application bundle on macOS, iOS, or visionOS, Qt sets several target properties, Info.plist values, and Xcode attributes to sensible defaults. Most defaults are skipped when the project already provides a value, either through the target property or through the matching CMAKE_XCODE_ATTRIBUTE_<name> variable. The exceptions are:
- The bundle name and version defaults check the matching
MACOSX_BUNDLE_*target properties and variables instead. - The bundle identifier default reuses an identifier that the project sets through
MACOSX_BUNDLE_GUI_IDENTIFIERorXCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER, and sets both properties. - The localization defaults overwrite an existing
CFBundleDevelopmentRegionin Info.plist.
Each default can also be turned off with one of the variables described on this page.
Set the variables to TRUE before the target is finalized, for example on the command line or in the project's top-level CMakeLists.txt.
Xcode Attributes
These defaults are only applied when using the Xcode generator.
| Variable | Effect when set |
|---|---|
QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID | Do not set XCODE_ATTRIBUTE_DEVELOPMENT_TEAM from the first team found on the system. See QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID. |
QT_NO_SET_XCODE_CODE_SIGN_STYLE | Do not set XCODE_ATTRIBUTE_CODE_SIGN_STYLE to Automatic. |
QT_NO_SET_XCODE_INSTALL_PATH | Do not set XCODE_ATTRIBUTE_INSTALL_PATH to $(inherited). |
QT_NO_SET_XCODE_DEBUG_INFORMATION_FORMAT | Do not set XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT per configuration (dwarf for Debug, dwarf-with-dsym otherwise). Only a value of the property without a [variant=<config>] suffix counts as provided by the project. |
QT_NO_SET_XCODE_GCC_GENERATE_DEBUGGING_SYMBOLS | Do not set XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS to YES. |
QT_NO_SET_XCODE_COPY_PHASE_STRIP | Do not set XCODE_ATTRIBUTE_COPY_PHASE_STRIP to NO. Without the default, Xcode strips embedded frameworks, such as the Qt frameworks, when copying them into the app bundle. |
QT_NO_SET_XCODE_ATTRIBUTE_MARKETING_VERSION and QT_NO_SET_XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION | Do not set the XCODE_ATTRIBUTE_MARKETING_VERSION and XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION properties. Setting either of the two variables turns off both properties. Info.plist then gets literal version strings instead of Xcode build setting references. |
iOS Attributes
These defaults are applied on iOS only.
| Variable | Effect when set |
|---|---|
QT_NO_SET_XCODE_TARGETED_DEVICE_FAMILY | Do not set XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY to iPhone and iPad (1,2). |
QT_NO_SET_XCODE_ENABLE_BITCODE | Do not set XCODE_ATTRIBUTE_ENABLE_BITCODE to NO. |
QT_NO_SET_XCODE_ARCHS | Do not restrict the iOS simulator to x86_64 when Qt was built with that architecture. |
QT_NO_SET_XCODE_LD_ENTRY_POINT | Do not set XCODE_ATTRIBUTE_LD_ENTRY_POINT to Qt's main wrapper. |
QT_NO_SET_DEFAULT_IOS_LAUNCH_SCREEN | Do not use Qt's default launch screen storyboard when the project provides none. See QT_IOS_LAUNCH_SCREEN. The target property of the same name takes precedence over the variable. |
QT_NO_ADD_IOS_LAUNCH_SCREEN_TO_BUNDLE | Do not add the launch screen storyboard to the app bundle. |
Bundle Metadata
These defaults are applied on all Apple platforms and with all generators.
| Variable | Effect when set |
|---|---|
QT_NO_SET_XCODE_BUNDLE_IDENTIFIER | Do not set the bundle identifier properties. See QT_NO_SET_XCODE_BUNDLE_IDENTIFIER. |
QT_NO_SET_XCODE_BUNDLE_NAME | Do not set MACOSX_BUNDLE_BUNDLE_NAME. |
QT_NO_SET_XCODE_BUNDLE_VERSION | Do not set placeholder values for MACOSX_BUNDLE_BUNDLE_VERSION and MACOSX_BUNDLE_SHORT_VERSION_STRING. |
QT_NO_SET_PLIST_LOCALIZATIONS | Do not write CFBundleDevelopmentRegion and CFBundleLocalizations into Info.plist. |
Shared Library Embedding
The embedding of shared libraries into application bundles is controlled by target properties:
- QT_NO_XCODE_EMBED_FRAMEWORKS turns it off for an application.
- QT_NO_XCODE_EMBED_FRAMEWORK_IN_CONSUMERS leaves out a single library.
SDK and Xcode Version Checks
These variables affect the SDK and Xcode version checks that run when configuring Qt itself.
| Variable | Effect when set |
|---|---|
QT_NO_APPLE_SDK_AND_XCODE_CHECK | Skip all SDK and Xcode version checks. |
QT_NO_APPLE_SDK_MIN_VERSION_CHECK | Skip the minimum SDK version check. |
QT_NO_XCODE_MIN_VERSION_CHECK | Skip the minimum Xcode version check, and do not require Xcode to be installed. |
QT_NO_APPLE_SDK_MAX_VERSION_CHECK | Do not warn when the SDK is newer than the newest tested version. |
QT_FORCE_WARN_APPLE_SDK_AND_XCODE_CHECK | Turn the error for an unsupported SDK or Xcode version into a warning. |
See also qt_finalize_target().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.