同意Xcode/iOS许可协议需要管理员权限,请使用sudo以root身份重新运行。

495
尝试编译我的C程序时,运行以下命令:
gcc pthread.c -o pthread

同意Xcode/iOS许可证需要管理员权限,请使用sudo以root身份重新运行。
而且我的代码无法编译。
为什么会发生这种情况,我该如何解决这个问题?

194
请执行以下命令以接受 Xcode 许可协议:sudo xcodebuild -license - Andy Barbour
4
我认为@Andy Barbour的评论是最好的答案,因为这个问题可以通过终端解决。Andy:如果你创建一个答案,我会投票支持它。 - rexford
11
如果不这样做,我甚至连git init都无法进行。 - ruffin
2
这再次证明了,为什么OS X真的是强大用户的一个伟大系统... - Lukas
10
这个答案应用到一个类似的新问题中,展示了如何以完全自动化的方式同意:sudo xcodebuild -license accept - 这在macOS Sierra上有效,但可能不适用于早期版本。 - ssc
显示剩余3条评论
11个回答

815

打开Xcode,并接受新的用户协议。这是因为下载了新版本的Xcode,而新的协议尚未被接受。


84
为什么这需要 root 权限,为什么没有人对此感到烦恼? - kbolino
1
安装新软件/软件的新版本通常需要输入您的用户密码。当您运行新编译器时,您会遇到这个障碍。 - ericsoco
23
@ericsoco,运行Xcode应该与root特权没有任何关系,无论有什么借口。期望Xcode是一个用户级应用程序是合适的。不必要的root特权会减弱用户的警惕性,并帮助滥用程序在一般情况下的传播。即使某些硬件开发或推动组件需要管理员特权,也应该是该组件而非整个开发环境请求特权。最重要的是,开发人员应该能够在任何时间点授予和撤销这些特权。现在的运作方式看起来像是苹果公司就Xcode采取了一种懒惰的架构方式。 - Vlad Didenko
5
@VladDidenko,您无需管理员权限即可运行Xcode或git。 您需要管理员特权同意Xcode EULA的条款以使用其应用程序-这是git所做的(并且在安装应用程序时您也做了)。 在这里特权升级类似于网站要求您提供信用卡背面的3-4位安全代码。 同意后,您就不再需要管理员权限了。 - user481081
13
@SoldOutActivist,是的,我了解这一切。然而,我使用不同的词来描述它。比如说:苹果要求管理员权限来获取和记录用户同意是不合理的。这既不可靠(任何应用程序都可以制作类似的窗口并计时到Xcode启动),也存在法律问题(因为它似乎将我与所有未来登录系统的用户的行为绑定在一起)。这是一个糟糕的设计。苹果和用户都不需要在安装完成后对应用程序进行工程化处理以要求管理员权限。 - Vlad Didenko
显示剩余6条评论

566
sudo xcodebuild -license

在命令行上轻松处理它。请注意,您必须手动滚动许可证并在最后同意其条款,除非您在命令行中添加"accept":

sudo xcodebuild -license accept

5
这很优雅。虽然我在这里使用了另一种方法,但如果我先看到这个,我实际上更喜欢这个。 - Vic Jang
1
我收到的消息是:无效选项--license。 - dan-klasson
5
应该只有一个破折号 @dan-klasson: -license,而不是 --license - Andy Barbour
2
使用配置管理和自动化工具维护苹果构建服务器并不容易,因为像Xcode和Java JDK这样的软件包需要手动接受许可证。 - Saustrup
虽然这是同意条款的首选方式,但对我来说并不可行,因为在CLI文档中没有一个地方可以让用户或者sudo同意这些条款。 - ahimsauzi
39
如果您正在编写针对自己控制的环境的解决方案脚本,您还可以添加 sudo xcodebuild -license accept 参数以接受许可协议。 - tobius

114

尝试使用 go get 时遇到问题,我认为与 git 有关。以下是我是如何解决的...

  1. 我在终端中输入了以下内容:

    sudo xcodebuild -license
    
  2. 这将打开协议。一直滑动到最底部并输入“agree”。

这样就解决了go get的问题。

很有趣的是,这些事情看似毫不相关。


4
是的,我在一台我已经有一段时间没有使用的机器上运行了“git clone”。 - Jess
4
如果不想阅读,您可以直接按q键退出并同意。 - steve

27

打开XCode并接受许可证即可解决该问题。


我刚升级到Xcode v7.0等版本后,运行Android Studio时出现了奇怪的错误,尽管之前一切都正常。这个答案对我很有用。 - G O'Rilla

15

您不需要费力操作任何命令 :)

一旦 XCode 更新完成,打开 Xcode IDE 程序。请接受条款和条件。

现在,一切都已准备就绪 :))


7

同意Xcode/iOS许可证需要管理员权限,请使用sudo以root身份重新运行。

如果您安装了新版本的OSX或XCode,Apple要求您同意他们的条款和条件。只需启动Xcode并“同意”即可。


它运行正常,但对于主要通过命令行而不是桌面使用工具的用户(比如我自己),可能不太明显。如果终端中有一些文字提示用户这一点就好了。 - karolus

6

我有过相同的问题,接受了许可协议后启动XCode或运行sudo xcodebuild -license accept,我必须重启我的Mac - 否则它将无法工作。


重启步骤非常关键。我摸索了一个小时,不知道为什么它不起作用。我重新启动后,一切都正常了。谢谢。 - skellertor

5

按照以下步骤操作:

  1. 打开终端。
  2. 输入以下命令:sudo xcodebuild --license
  3. 输入系统密码。
  4. 同意许可协议。

5
国旗应该只使用一个破折号,即 sudo xcodebuild -license - aboutaaron

4

当我尝试使用git时也遇到了相同的问题。

可以在没有安装XCode的情况下安装git。我怀疑mac上的gcc是否真正依赖于XCode。而且,除非我确定需要它,否则我不想使用root接受任何东西。

我通过转到应用程序文件夹并将XCode拖到垃圾桶中卸载了XCode。

现在我的git命令正常工作。如果真正需要,我会重新安装XCode。


1
为什么在终端使用git命令会要求你接受与非相关应用程序的许可证?或者它们是否有关联? - Scott Duncan

2

我遇到了同样的问题。

这个问题是由X-Code引起的。

解决方案: 1. 打开X-Code并接受用户协议(T&C)。 或者 2. 重新启动您的MAC,它将自动解决。


欢迎来到SO!有许多答案都提供了相同的解决方案,您能详细说明一下您的解决方案的优点吗? - David García Bodego

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接