【问题标题】:Qt Creator - Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuildQt Creator - 项目错误:Xcode 未正确设置。您可能需要通过运行 /usr/bin/xcodebuild 来确认许可协议
【发布时间】:2016-02-17 04:03:43
【问题描述】:

我刚刚安装了 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 有什么关系,除非它与访问库以实现跨平台兼容性有关,但有没有办法解决这个问题?

【问题讨论】:

  • 注意:对于 Qt 5.7.1 和 Xcode 8.2.1,@rudolf-ratusinski 的回答完美地完成了这项工作。接受的答案不起作用。
  • @rudolf-ratusinski 答案仍然适用于 Xcode 11.2.1

标签: c++ xcode macos qt qt-creator


【解决方案1】:

这样就可以了:

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

在终端中运行它。

【讨论】:

  • 在 Xcode8 中工作并且比其他步骤更容易。谢谢!
  • 确认它适用于带有 Xcode 8 的 macOS Sierra 10.12.4 - 谢谢!
  • 这仍然适用于带有 Xcode 9.4.1 的 macOS High Sierra 10.13.5 - 谢谢!
  • 确认这适用于 macOS Catalina 10.15.2 和 Xcode 11.3。
【解决方案2】:

>= Xcode 8

在 Xcode 8 中,正如 Bruce 所说,当 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 接受条款。

【讨论】:

  • 我收到错误 xcode-select: error: invalid developer directory '/Applications/Xcode.app/Contents/Developer'
  • 不适用于 Xcode 8。我已通过这些说明接受了许可,但仍然出现相同的错误。
  • 谢谢,在编辑 default_pre.prf 后使用 XCode 8 可以正常工作!
  • 对于那些想知道安装文件夹在哪里的人:这将取决于您的包管理器的设置:/usr/local/Cellar/qt55 用于 Homebrew,/opt/local/libexec/qt5(-mac) 用于macports.
  • 使用自制软件,在安装 qt@5.5(Ruby capybara gem 需要它)之后,我在/usr/local/Cellar/qt@5.5/5.5.1/mkspecs/features/mac/default_pre.prf 找到了相关的default_pre.prf 文件。我还尝试了 Rudolf Ratusiński 的方法,虽然它让我克服了第一个困难,但后来却导致了许多虚假信息,而当我使用这种方法时我没有得到这些信息。
【解决方案3】:

对于 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】:

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

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

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

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

    【讨论】:

    • 我更喜欢这个版本,所以看起来不像编辑cfg文件那么混乱。
    • 这会导致稍后在使用 xcodebuild 不支持的参数调用 xcrun 时出现问题(缺少参数 -f)。
    • 这似乎是一个 qt 问题。因此,我认为在 xcode distrib 中添加持久符号链接比更改将被 Qt 5.7.1 替换的 qt conf 文件更危险
    • 不要这样做,它会弄乱我的 iphone 应用程序项目。
    • 我太早投票赞成并把它锁定了......我遇到了参数 -f 问题。
    【解决方案5】:

    对我来说,正确工作的唯一方法是使用“#”注释有关 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

    【讨论】:

      【解决方案6】:

      如果您使用 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
      

      【讨论】:

        【解决方案7】:

        安装完整版 Xcode,同意条款,然后使用 xcode-select --reset 解决了这个问题。

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

        【讨论】:

          【解决方案8】:

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

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

          工作。即它在命令行中启动了一个同意过程,我在仔细阅读了所有 14 页的东西后同意了。

          我不需要编辑任何东西。

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

          【讨论】:

          • 如果你要否定一个答案,至少有礼貌地给出一个线索来解释为什么!
          猜你喜欢
          • 2017-01-29
          • 2019-03-08
          • 2017-01-22
          • 2018-07-14
          • 2017-01-10
          • 1970-01-01
          • 2022-07-20
          • 2016-05-13
          相关资源
          最近更新 更多