自 Xcode 8 起 Qt 不工作

Qt does not work since Xcode 8

自 Xcode 8 安装后,我在创建 Qt 控制台项目时遇到此错误:

Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.

我已经重新安装了 Qt 和 Qt Creator。 我已经阅读了很多类似的 post、运行 xcode-select 之类的东西。 这太疯狂了,无事可做,仍然是同样的错误。

我想知道 Qt 究竟用 Xcode 做了什么?

(这是 Qt 5.7)

目前,在 Qt 更新之前这是一个修复:

步骤 1:

打开文件:

<Qt installation folder>/5.7/clang_64/mkspecs/features/mac/default_pre.prf

步骤 2:

替换:

isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))

与:

isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))

Luca 的回答是正确的,这是一个 Qt 错误,可以在此处找到更多详细信息:

https://bugreports.qt.io/browse/QTBUG-55649

包括 release/fix 的进展。

为了避免错误 'Current iPhone SDK version (10.0) is too old. Please upgrade Xcode.' 在为 iOS 构建时,您需要将 'xcrun' 更改为 'xcodebuild'(如 ) 还将最低 sdk 版本更改为“10.0”。打开文件:

<Qt installation folder>/5.7/ios/mkspecs/macx-ios-clang/features/sdk.prf

并替换:

lessThan(QMAKE_MAC_SDK_VERSION, "8.0"):

与:

lessThan(QMAKE_MAC_SDK_VERSION, "10.0"):

UPD: Qt 5.7.1 已经与 xcode 8 一起工作了,只需将您的 Qt 更新到这个(或更高)版本

只是为了完成 Yevgeniy Logachev 的答案,如果你想为 iOS 设备编译,你必须使用 Luca 的解决方案但是对于 iOS 路径:

<Qt installation folder>/5.7/ios/mkspecs/features/mac/default_pre.prf