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


489

尝试编译C程序时,运行以下命令:

gcc pthread.c -o pthread

返回值:

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

而且我的代码无法编译。

为什么会发生这种情况,如何解决此问题?


193
sudo xcodebuild -license
安迪·巴伯

4
实际上,我认为@Andy Barbour的评论是最好的答案,因为可以通过这种方式在终端中解决此问题。安迪:如果您给出答案,我会投赞成票。
rexford 2014年

11
我什至git init不能不这样做。
鲁芬2014年

2
这再次说明了为什么OS X对于高级用户来说确实是一个很棒的系统...
Lukas

10
这个对一个新的类似问题的答案显示了如何以一种完全自动化的方式达成共识:sudo xcodebuild -license accept-在此处可在macOS Sierra上运行,但在较早版本上可能不起作用
ssc 2016年

Answers:


808

打开Xcode,并接受新的用户协议。之所以发生这种情况,是因为下载了新版本的Xcode,并且不接受新协议。


78
为什么这需要root用户?为什么没有人为此烦恼呢?
kbolino

1
@kbolino安装新软件/新版本软件通常需要您输入用户密码。运行新的编译器时,遇到了麻烦。
ericsoco

22
@ericsoco,运行Xcode应该与root特权无关,无论有什么借口。期望Xcode成为用户级应用程序是适当的。不必要的root特权通常会降低用户的警惕性,并有助于漏洞利用程序的泛滥。即使某些硬件开发或推组件需要管理员特权,也应该是请求特权的组件而不是整个开发环境。至关重要的是,开发人员应该能够在任何时间点授予和撤销这些特权。现在,它的工作方式看起来像是代表Apple构建Xcode的一种惰性方法。
弗拉德·迪登科

5
@VladDidenko您不需要管理员权限即可运行Xcode或git。您需要管理员特权才能同意Xcode EULA的条款才能使用其应用程序-git会这样做(安装应用程序时也是如此)。这里的特权升级类似于要求信用卡背面提供3-4位安全码的网站。达成协议后,您不再需要管理员权限。
售罄的维权人士

13
@SoldOutActivist是的,我知道所有这些。但是我用不同的词来形容它。这样:Apple要求管理员特权来获取并记录用户同意是不合理的。从不可靠的角度(任何应用程序都可以创建一个这样的窗口,然后将其启动到Xcode的时间),从法律上来说都是有问题的(因为它似乎约束了我所有将来登录系统的用户的行为)。设计不良。无论是Apple还是用户,都不需要对应用程序进行设计,以使其在安装结束后要求管理员特权。
弗拉德·迪登科

557
sudo xcodebuild -license

将在命令行上毫无问题地解决它。请注意,除非您在命令行中添加“ accept”,否则您必须手动滚动浏览许可证并在最后同意其条款:

sudo xcodebuild -license accept

5
真优雅 尽管我在这里使用了另一种方法,但是如果我首先看到它,我实际上会更喜欢它。
Vic Jang 2015年

1
我得到:无效选项--license
dan-klasson

5
应该只有一个破折号@丹klasson:-license NOT --license
安迪·巴伯

2
当Xcode和Java JDK之类的软件包要求您手动接受许可证时,使用配置管理和配置来维护Apple构建服务器并不是一件容易的事。
Saustrup

38
如果您要为自己控制的环境编写脚本解决方案,则还可以放入accept参数sudo xcodebuild -license accept
tobius

115

当我尝试去获取时卡住了...我认为它与git有关。这是如何解决它...

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

    sudo xcodebuild -license
  2. 这将打开协议。一路结束,然后输入“同意”。

这样可以解决问题。

无关的事物是非常有趣的。


4
是的,我git clone在一分钟没用的机器上运行。
杰西2015年

4
您可以按q退出并同意(如果不愿意阅读的话)。
史蒂夫2015年

27

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


在将Xcode升级到v7.0等之后,我刚刚遇到了一个问题,考虑到在运行Android Studio的升级之前一切正常,因此出现了奇怪的错误。这个答案对我有用。
G O'Rilla

15

您不需要摆弄任何命令:)

XCode更新后,打开Xcode IDE程序。请接受条款和条件。

你们都准备去了:))


7

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

已安装新版本的OSX或XCode,Apple希望您同意其条款和条件。因此,只需启动Xcode并“同意”即可。


它可以工作,但对于主要通过命令行而不是桌面使用工具的用户(如我自己)来说可能不太明显。如果终端中有一些文本将用户更改为此,那将是很好的。
karolus 2015年

5

按着这些次序:

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

4
该标志只能使用一个破折号,即sudo xcodebuild -license
关于

5

在接受启动XCode或运行许可证的许可证后,我遇到了同样的问题,sudo xcodebuild -license accept我必须重新启动 Mac –否则无法正常工作。


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

3

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

可以不安装git而安装它。而且我怀疑Mac上的gcc确实依赖XCode。而且我不希望使用root接受某些东西,除非我确定我需要它。

我通过导航到应用程序文件夹并将XCode拖到垃圾箱中来卸载XCode。

现在我的git命令照常工作。如果确实需要,我将重新安装XCode。


为什么将终端用于git命令会要求您接受任何不相关应用程序的许可证?还是它们之间有某种联系?
斯科特·邓肯

2

我正面临着同样的问题。

由于X代码的问题。

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


欢迎来到SO!相同的解决方案有很多答案,您能否充分利用您的收益?
DavidGarcíaBodego,

0

如果您在Intellij中遇到类似的问题,请按照我上面其他人所说的做:

  1. 打开终端。
  2. 输入以下命令:sudo xcodebuild --license。
  3. 输入系统密码。
  4. 转到文件末尾:按空格键(按钮)。
  5. 输入“同意”许可。

您完成了!!

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.