Qt Creator-项目错误:Xcode设置不正确。您可能需要通过运行/ usr / bin / xcodebuild来确认许可协议


121

我刚刚安装了Qt 5.5,并在OS X上第一次使用Qt Creator。当我第一次安装Qt时,它给我一个错误消息“未安装Xcode 5”,我认为这很奇怪,(我有Xcode 7 beta) ,但安装仍然成功完成。

现在,当我启动或打开项目时,出现错误:

项目错误:Xcode设置不正确。您可能需要通过运行/ usr / bin / xcodebuild来确认许可协议。

/usr/bin/xcodebuild在终端中运行时,得到以下信息:

xcode-select:错误:工具'xcodebuild'需要Xcode,但是活动的开发人员目录'/ Library / Developer / CommandLineTools'是命令行工具实例

我不确定Xcode与Qt Creator有什么关系,除非它与访问库具有跨平台兼容性有关,但是有没有办法解决此问题?


3
注意:对于Qt 5.7.1和Xcode 8.2.1,@ rudolf-ratusinski的回答非常完美。接受的答案无效。
Alexey Kamenskiy

@ rudolf-ratusinski答案仍适用于Xcode 11.2.1
AJC

Answers:


275

> = Xcode 8

正如Bruce所说,在Xcode 8中,当Qt试图找到xcrun应该寻找的时间时,就会发生这种情况xcodebuild

打开文件:

Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf

更换:

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

带有:

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

〜> Xcode 8

在Xcode 8之前,在安装Xcode之后安装命令行工具时,会出现此问题。发生的情况是Xcode-select指向开发人员目录/Library/Developer/CommandLineTools

Xcode-select使用以下命令指向正确的Xcode Developer目录:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

使用以下命令确认许可协议:

sudo xcodebuild -license

这将提示您通读许可协议。

输入agree以接受条款。


4
我得到了错误的Xcode-选择:错误:无效的开发目录“/Applications/Xcode.app/Contents/Developer”
穆罕默德Rafeeq

14
不适用于Xcode8。我已通过这些说明接受了许可证,但仍然收到相同的错误。
紫罗兰色长颈鹿

1
谢谢,使用XCode 8编辑default_pre.prf后,它可以正常工作!
Libor B.

11
对于那些想知道安装文件夹在哪里的人:它将取决于软件包管理器的设置:对于Homebrew是/ usr / local / Cellar / qt55,对于macports是/ opt / local / libexec / qt5(-mac)。
yogodoshi

3
使用自制软件,在安装qt@5.5(Ruby capybara gem需要此default_pre.prf文件)之后,我在以下位置找到了相关文件:/usr/local/Cellar/qt@5.5/5.5.1/mkspecs/features/mac/default_pre.prf。我还尝试了RudolfRatusiński的方法,尽管它使我度过了一个难关,但后来却产生了许多虚假信息,而当我改用这种方法时却没有得到。
Ben Hocking

81

如果您更改的内容,Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf 则它将仅适用于桌面套件,不适用于ex。模拟器。

更好的方法是创建符号链接:

cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun

因此您不必为所有目标更改.prf文件。


1
我更喜欢此版本,因此它看起来比编辑cfg文件更混乱。
tjeden

3
稍后使用xcodebuild不支持的参数调用xcrun(缺少参数-f)时,这会导致问题。
mrAlmond

3
看来是qt问题。因此,我认为在xcode distrib中添加持久的符号链接比更改将由Qt 5.7.1取代的qt conf文件更为危险
ALoopingIcon

1
不要这样做,这会弄乱我的iPhone应用程序项目。
2016年

1
我对此进行了过早的投票,并将其锁定...我遇到了-f问题。
BuvinJ

26

这将达到目的:

#sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

在您的终端中运行它。


在Xcode8中工作,并且比其他步骤更容易。谢谢!
米沙

确认它可以在具有Xcode 8的macOS Sierra 10.12.4上运行-谢谢!
Dylan Pierce

1
在使用Xcode 9.4.1的macOS High Sierra 10.13.5上仍然可以使用-谢谢!
d1jhoni1b

确认此功能可在带有Xcode 11.3的macOS Catalina 10.15.2中使用。
RNickMcCandless

11

对于Xcode 8的用户,还有另一个问题。在发布Qt 5.7.1之前,请参见此处以获取临时解决方案:

https://forum.qt.io/topic/71119/project-error-xcode-not-set-up-properly

总结一下:

Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf在文本编辑器中打开,并替换为:

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

有了这个:

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

4

如果使用XCode 8.x从源代码构建Qt,则必须qt-everywhere-enterprise-src-5.7.0/qtbase/configure在第551行的文件中更改“ -find”参数,使其看起来像:

if ! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1; then

2

设法解决该问题,安装了完整版本的Xcode,同意条款,然后使用xcode-select --reset

基本上,问题是您所指向的xcode /Library/Developer/CommandLineTools不允许您接受条款和条件。因此,在安装并重置位置后,一切都可以


0

对我而言,正确工作的唯一方法是用'#'注释有关xcrun的行:

# Make sure Xcode is set up properly
#isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \
    #error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.")

在文件中:Qt_install_folder / 5.7 / clang_64 / mkspecs / features / mac / default_pre.prf


0

只是为了本着“这对我有用”的精神在许多旧答案中添加一点,我发现通过启动Xcode,登录到我的开发人员帐户(只是一个免费帐户),然后在“位置”中设置命令工具, 。我可以得到

'sudo / usr / bin / xcodebuild -license同意'

上班。也就是说,它在命令行中启动了一个同意程序,在仔细阅读了所有14兆页面的内容后,我同意了。

我不必编辑任何内容。

我的系统是Mojave 10.14.6和Xcode 10.3(10G8)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.