diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf index 98caf54f8a..c031403930 100644 --- a/mkspecs/features/mac/default_pre.prf +++ b/mkspecs/features/mac/default_pre.prf @@ -24,6 +24,15 @@ isEmpty(QMAKE_XCODE_VERSION) { unset(xcode_version) } +isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) { + QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist + exists($$QMAKE_XCODE_PREFERENCES_FILE): \ + QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null") + + !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \ + cache(QMAKE_TARGET_BUNDLE_PREFIX) +} + # This variable is used by the xcode_dynamic_library_suffix # feature, which allows Xcode to choose the Qt libraries to link to # at build time, depending on the current Xcode SDK and configuration. diff --git a/mkspecs/macx-clang-32/Info.plist.app b/mkspecs/macx-clang-32/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-clang-32/Info.plist.app +++ b/mkspecs/macx-clang-32/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-clang/Info.plist.app b/mkspecs/macx-clang/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-clang/Info.plist.app +++ b/mkspecs/macx-clang/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-g++-32/Info.plist.app b/mkspecs/macx-g++-32/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-g++-32/Info.plist.app +++ b/mkspecs/macx-g++-32/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-g++/Info.plist.app b/mkspecs/macx-g++/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-g++/Info.plist.app +++ b/mkspecs/macx-g++/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-g++40/Info.plist.app b/mkspecs/macx-g++40/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-g++40/Info.plist.app +++ b/mkspecs/macx-g++40/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-g++42/Info.plist.app b/mkspecs/macx-g++42/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-g++42/Info.plist.app +++ b/mkspecs/macx-g++42/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-icc/Info.plist.app b/mkspecs/macx-icc/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-icc/Info.plist.app +++ b/mkspecs/macx-icc/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/mkspecs/macx-ios-clang/Info.plist.app b/mkspecs/macx-ios-clang/Info.plist.app index 91f4b3d07e..5a0a631d7f 100755 --- a/mkspecs/macx-ios-clang/Info.plist.app +++ b/mkspecs/macx-ios-clang/Info.plist.app @@ -13,7 +13,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@BUNDLEIDENTIFIER@ + @BUNDLEIDENTIFIER@ CFBundleDisplayName ${PRODUCT_NAME} CFBundleName diff --git a/mkspecs/macx-llvm/Info.plist.app b/mkspecs/macx-llvm/Info.plist.app index 187a8e0aa4..8e44bd7f60 100644 --- a/mkspecs/macx-llvm/Info.plist.app +++ b/mkspecs/macx-llvm/Info.plist.app @@ -15,7 +15,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier - com.yourcompany.@EXECUTABLE@ + @BUNDLEIDENTIFIER@ NOTE This file was generated by Qt/QMake. diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index 99373a0b8a..307b3d27ba 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -1404,7 +1404,10 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) } else { plist_in_text = plist_in_text.replace("@LIBRARY@", project->first("QMAKE_ORIG_TARGET").toQString()); } - plist_in_text = plist_in_text.replace("@BUNDLEIDENTIFIER@", QLatin1String("${PRODUCT_NAME:rfc1034identifier}")); + QString bundlePrefix = project->first("QMAKE_TARGET_BUNDLE_PREFIX").toQString(); + if (bundlePrefix.isEmpty()) + bundlePrefix = "com.yourcompany"; + plist_in_text = plist_in_text.replace("@BUNDLEIDENTIFIER@", bundlePrefix + "." + QLatin1String("${PRODUCT_NAME:rfc1034identifier}")); if (!project->values("VERSION").isEmpty()) { plist_in_text = plist_in_text.replace("@SHORT_VERSION@", project->first("VER_MAJ") + "." + project->first("VER_MIN"));