494

While attempting to compile my C program, running the following command:

gcc pthread.c -o pthread

Returns:

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

and my code does not compile.

Why is this happening and how can I fix this problem?

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
coachcal
  • 12,841
  • 3
  • 16
  • 12
  • 193
    `sudo xcodebuild -license` – Andy Barbour Oct 10 '14 at 04:32
  • 4
    Actually I think the comment of @Andy Barbour is the best answer since the issue can be resolved within the terminal this way. Andy: if you create an answer, I will vote for it. – rexford Nov 05 '14 at 10:32
  • 11
    I couldn't even `git init` without doing this. – ruffin Nov 25 '14 at 04:48
  • 2
    This again shows, why OS X is really a great system for the power user... – Lukas Sep 21 '15 at 14:34
  • 1
    I had the same problem with `svn status`. Not sure what is the relation between svn and xcode. – Daniel Apr 22 '16 at 10:23
  • Why can't Apple's error message mention `xcodebuild -license`? I had this happen when running `make`. Recommending to run `make` via sudo is idiotic. Just venting. – Hannes Oct 31 '16 at 20:07
  • 10
    [this answer](http://apple.stackexchange.com/a/213151) to a [newer, similar question](http://apple.stackexchange.com/q/175069) shows how to agree in a fully automated fashion: `sudo xcodebuild -license accept` - which works on macOS Sierra here, but might not work on earlier versions – ssc Dec 12 '16 at 09:41
  • Similar issue : http://stackoverflow.com/q/32720476/1085186 – StackFlowed Dec 15 '16 at 02:16

11 Answers11

814

Open up Xcode, and accept the new user agreement. This was happening because a new version of Xcode was downloaded and the new agreement was not accepted.

coachcal
  • 12,841
  • 3
  • 16
  • 12
  • 84
    Why does this require root, and why isn't anyone bothered by that fact? – kbolino Sep 08 '15 at 17:59
  • 1
    @kbolino Installing new software / new versions of software often requires you to enter your user password. When you run the new compiler, you hit that wall. – ericsoco Sep 22 '15 at 22:28
  • 23
    @ericsoco, running Xcode should have NOTHING to do with root privileges, whatever excuse there is. It is proper to expect Xcode to be a userland application. Unnecessary root privileges dampen user vigilance and help exploits' proliferation in general. Even if some hardware development or push component wants admin privileges, it should be that component, not the whole dev environment, which requests privileges. Crucially, devs should be able to grant AND revoke those privileges at any point of time. The way it works now looks like a lazy way to architect Xcode on Apple's behalf. – Vlad Didenko Sep 22 '15 at 23:55
  • 5
    @VladDidenko You don't need admin privileges to run Xcode or git. You need admin privileges to agree to the terms of the Xcode EULA in order to use its applications--which git does (and you did when you installed the application). Privilege escalation here is akin to sites asking for the 3-4 digit security code on the back of your credit card. After agreeing, you don't need admin privileges anymore. –  Sep 26 '15 at 12:17
  • 13
    @SoldOutActivist Yeah, I know all that. However I use different words to describe it. Like that: It is unreasonable that Apple asks admin privileges to get and record a user consent. Both from the point that It is not trustworthy (any app can make a window like that and time it to Xcode start) and legally questionable (as it seems to bind me for actions of all future users logging into the system). Bad design. Neither Apple nor a user NEED to have the application engineered in a way to demand admin privileges after install is over. – Vlad Didenko Sep 26 '15 at 22:16
  • Yes, you will be responsible for what someone does with your laptop. Or your car. Or your gun. If someone shoots someone with your gun, you have liability unless you can prove they stole it and before they stole it you took reasonable preventative measures. Basically, you're arguing that XCode doesn't NEED you to sign their EULA via an elevated permissions check and gun salesmen shouldn't NEED to photo copy your driver's license before you buy one of their guns. –  Oct 02 '15 at 00:47
  • The license acceptance requiring advanced privileges is so that all users on the mac can now use xcode. Accept it once, accept it for all. Correct me if I'm wrong here. – Censored P. Censored Oct 07 '15 at 19:55
  • XCode is kind of complex software bundle which is used for complex things. No warranty for edge cases is a thing they always would want to be signed. IIRC command line tools which is essentially required (not the whole XCode) does not ask for EULA but not as easy to get and install. – lifecoder Oct 08 '15 at 11:06
  • This also works if you get the "Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo." message while installing Browsersync with `npm install`. – Curtis Blackwell Oct 13 '15 at 09:06
  • If you don't like it then run the Xcode IDE. That prompts you to go accept the license agreement on the site, by entering your credentials there. I guess Apple should build a command line tool that prompts you to enter your developer program agent license credentials in the command line. Fact is, accepting the license agreement does require a higher level of privilege. Using sudo to satisfy the requirements does seem a little strange, to be sure. – Duncan C Oct 17 '15 at 01:21
  • 1
    @ericsoco The issue to me is the separating out of "accepting the EULA" as a discrete, elevated-privilege operation; what purpose is served by this distinction? If the software presents a concern that the system administrator should be aware of, then it should be addressed at installation time. If it requires the end-user to accept an agreement for legal purposes, then it should be addressed in user space. – kbolino Oct 28 '15 at 03:11
563
sudo xcodebuild -license

will take care of it with no trouble on the command line. Note that you'll have to manually scroll through the license, and agree to its terms at the end, unless you add "accept" to the command line :

sudo xcodebuild -license accept
philant
  • 34,748
  • 11
  • 69
  • 112
Andy Barbour
  • 8,783
  • 1
  • 24
  • 35
  • 5
    This is elegant. Although I used the other method here, I would actually prefer this one if I saw it first. – Vic Jang Apr 11 '15 at 05:37
  • 1
    I get: invalid option --license – dan-klasson Jul 03 '15 at 04:14
  • 5
    There should only be one dash @dan-klasson: `-license` _NOT_ `--license` – Andy Barbour Jul 03 '15 at 16:23
  • 2
    Maintaining Apple build servers with configuration management and provisioning is not exactly easy, when packages like Xcode and Java JDK requires you to manually accept a license. – Saustrup Sep 18 '15 at 12:19
  • Although a preferred way to agree to the term, this option did not work for me since there was no place in the CLI document were one or sudo can agree to the terms. – ahimsauzi Sep 20 '15 at 16:03
  • 39
    If you are scripting solutions for environments that you control you can also throw in the accept parameter `sudo xcodebuild -license accept`. – tobius Sep 28 '15 at 14:08
114

Got stuck as I was trying to a go get ... I think it was related to git. Here is how was able to fix it ...

  1. I entered the following in terminal:

    sudo xcodebuild -license
    
  2. This will open the agreement. Go all the way to end and type "agree".

That takes care of go get issues.

It was quite interesting how unrelated things were.

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
rahul
  • 3,018
  • 4
  • 29
  • 28
27

Opening XCode and accepting the license fixes the issue.

Mr. Doomsbuster
  • 1,324
  • 13
  • 11
  • I've just hit one after upgrading Xcode to v7.0 etc. and got weird errors considering everything was working prior to the upgrade running Android Studio. This answer worked for me. – G O'Rilla Sep 20 '15 at 10:55
15

You don't need to fiddle around with any command :)

Once the XCode is updated, open the Xcode IDE program. Please accept terms and conditions.

You are all set to go :))

codebased
  • 6,945
  • 9
  • 50
  • 84
7

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

A new version of OSX or XCode was installed and Apple wants you to agree to their Terms and Conditions. So just launch Xcode and "Agree" to them.

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
  • It works, but may not be too apparent to users (like myself) who mainly use tools via the command line instead of the desktop. Would be good if there were some text in Terminal altering users to this. – karolus Jun 04 '15 at 15:24
6

I had the same issue, after accepting the license launching XCode or running sudo xcodebuild -license accept i had to restart my Mac – otherwise it did not worked.

Benjamin
  • 206
  • 3
  • 3
  • The restart step is crucial. I fumbled around for an hour wondering why it didn't work. I restarted and it all working. Thank you – skellertor Mar 19 '20 at 18:09
5

Follow these steps:

  1. Open Terminal.
  2. Enter this command: sudo xcodebuild --license.
  3. Enter system password.
  4. Agree to the license.
the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Jabbir Basha
  • 455
  • 6
  • 7
4

I had the same issue when I tried to use git.

It is possible to install git without it. And I doubt that gcc on mac is truly dependent on XCode. And I don't want to use root to accept something unless I'm sure I need it.

I uninstalled XCode by navigating to the applications folder and dragging XCode to the trash.

Now my git commands work as usual. I'll re-install XCode if/when I truly need it.

  • 1
    why would using the terminal for a git command require you to accept a license for any non-related application? Or are they related somehow? – Scott Duncan Nov 11 '19 at 17:53
2

I'm facing the same issue.

The issue because of X-Code.

Solution: 1. Open X-code and accept user agreement (T&C). or 2. Restart your MAC, It will resolve automatically.

Viplav Soni
  • 1,489
  • 13
  • 18
0

If you have similar issues in Intellij do as others said above me :

  1. Open Terminal.
  2. Enter this command: sudo xcodebuild --license.
  3. Enter system password.
  4. Go to the end of file: Press space(button) to do that.
  5. Type 'Agree' to the license.

And you are done.!!