"Accepter la licence Xcode / iOS nécessite des privilèges d'administrateur, veuillez réexécuter en tant que root via sudo." lors de l'utilisation de GCC


489

Lors de la tentative de compilation de mon programme C, exécutez la commande suivante:

gcc pthread.c -o pthread

Retour:

Accepter la licence Xcode / iOS nécessite des privilèges d'administrateur, veuillez réexécuter en tant que root via sudo.

et mon code ne compile pas.

Pourquoi cela se produit-il et comment puis-je résoudre ce problème?


193
sudo xcodebuild -license
Andy Barbour

4
En fait, je pense que le commentaire de @Andy Barbour est la meilleure réponse car le problème peut être résolu au sein du terminal de cette façon. Andy: si vous créez une réponse, je voterai pour.
Rexford

11
Je ne pouvais même pas git initsans faire ça.
ruffin

2
Cela montre encore une fois, pourquoi OS X est vraiment un excellent système pour l'utilisateur expérimenté ...
Lukas

10
cette réponse à une question similaire plus récente montre comment convenir de manière entièrement automatisée: sudo xcodebuild -license accept- qui fonctionne sur macOS Sierra ici, mais qui pourrait ne pas fonctionner sur les versions antérieures
ssc

Réponses:


808

Ouvrez Xcode et acceptez le nouvel accord utilisateur. Cela se produisait car une nouvelle version de Xcode a été téléchargée et le nouvel accord n'a pas été accepté.


78
Pourquoi cela nécessite-t-il un root, et pourquoi personne ne s'en soucie-t-il?
kbolino

1
@kbolino L'installation de nouveaux logiciels / de nouvelles versions de logiciels nécessite souvent la saisie de votre mot de passe utilisateur. Lorsque vous exécutez le nouveau compilateur, vous frappez ce mur.
ericsoco

22
@ericsoco, exécuter Xcode ne devrait rien avoir à faire avec les privilèges root, quelle que soit l'excuse. Il convient de s'attendre à ce que Xcode soit une application utilisateur. Les privilèges root inutiles atténuent la vigilance des utilisateurs et aident à la prolifération des exploits en général. Même si certains composants de développement matériel ou push veulent des privilèges d'administrateur, ce doit être ce composant, et non l'environnement de développement entier, qui demande des privilèges. Surtout, les développeurs devraient pouvoir accorder ET révoquer ces privilèges à tout moment. La façon dont cela fonctionne maintenant ressemble à une façon paresseuse d'architecter Xcode au nom d'Apple.
Vlad Didenko

5
@VladDidenko Vous n'avez pas besoin de privilèges d'administrateur pour exécuter Xcode ou git. Vous avez besoin des privilèges d'administrateur pour accepter les termes du CLUF Xcode afin d'utiliser ses applications - ce que git fait (et vous l'avez fait lorsque vous avez installé l'application). L'escalade de privilèges s'apparente ici à des sites qui demandent le code de sécurité à 3-4 chiffres au dos de votre carte de crédit. Après avoir accepté, vous n'avez plus besoin des privilèges d'administrateur.
Sold Out Activist

13
@SoldOutActivist Oui, je sais tout cela. Cependant, j'utilise des mots différents pour le décrire. Comme ça: Il est déraisonnable qu'Apple demande des privilèges d'administrateur pour obtenir et enregistrer un consentement de l'utilisateur. À la fois du fait qu'il n'est pas fiable (n'importe quelle application peut créer une fenêtre comme celle-ci et le chronométrer pour démarrer Xcode) et juridiquement discutable (car il semble me lier pour les actions de tous les futurs utilisateurs se connectant au système). Mauvaise conception. Ni Apple ni un utilisateur N'ONT BESOIN que l'application soit conçue de manière à exiger des privilèges d'administrateur une fois l'installation terminée.
Vlad Didenko

557
sudo xcodebuild -license

s'en occupera sans problème sur la ligne de commande. Notez que vous devrez faire défiler manuellement la licence et accepter ses conditions à la fin, sauf si vous ajoutez «accepter» à la ligne de commande:

sudo xcodebuild -license accept

5
C'est élégant. Bien que j'aie utilisé l'autre méthode ici, je préférerais en fait celle-ci si je la voyais en premier.
Vic Jang

1
J'obtiens: option invalide
dan-klasson

5
Il ne devrait y avoir qu'un seul tiret @ dan-klasson: -license NON --license
Andy Barbour

2
La maintenance des serveurs de build Apple avec la gestion de la configuration et l'approvisionnement n'est pas exactement facile, lorsque des packages tels que Xcode et Java JDK nécessitent que vous acceptiez manuellement une licence.
Saustrup

38
Si vous créez des solutions de script pour des environnements que vous contrôlez, vous pouvez également ajouter le paramètre accept sudo xcodebuild -license accept.
tobius

115

Je suis resté coincé alors que j'essayais de me lancer ... Je pense que c'était lié à Git. Voici comment a pu y remédier ...

  1. J'ai entré les informations suivantes dans le terminal:

    sudo xcodebuild -license
  2. Cela ouvrira l'accord. Allez jusqu'au bout et tapez "d'accord".

Cela prend soin d'aller chercher des problèmes.

C'était très intéressant de voir à quel point les choses n'étaient pas liées.


4
Oui, je courais git clonesur une machine que je n'avais pas utilisée depuis une minute.
Jess

4
Vous pouvez simplement appuyer sur q pour quitter et accepter si vous n'êtes pas disposé à le lire.
steve

27

L'ouverture de XCode et l'acceptation de la licence corrigent le problème.


J'en ai juste frappé un après la mise à niveau de Xcode vers v7.0, etc. et j'ai eu des erreurs étranges étant donné que tout fonctionnait avant la mise à niveau exécutant Android Studio. Cette réponse a fonctionné pour moi.
G O'Rilla

15

Vous n'avez pas besoin de jouer avec n'importe quelle commande :)

Une fois le XCode mis à jour, ouvrez le programme Xcode IDE. Veuillez accepter les termes et conditions.

Vous êtes prêt à partir :))


7

Accepter la licence Xcode / iOS nécessite des privilèges d'administrateur, veuillez réexécuter en tant que root via sudo.

Une nouvelle version d'OSX ou XCode a été installée et Apple souhaite que vous acceptiez leurs conditions générales. Il suffit donc de lancer Xcode et de les «accepter».


Cela fonctionne, mais peut ne pas être trop apparent pour les utilisateurs (comme moi) qui utilisent principalement des outils via la ligne de commande au lieu du bureau. Ce serait bien s'il y avait du texte dans le terminal modifiant les utilisateurs.
karolus

5

Suivez ces étapes:

  1. Ouvrez le terminal.
  2. Entrez cette commande: sudo xcodebuild --license .
  3. Saisissez le mot de passe du système.
  4. Acceptez la licence.

4
Le drapeau ne doit utiliser qu'un seul tiret, c'est-à-dire sudo xcodebuild -license.
aboutaaron

5

J'ai eu le même problème, après avoir accepté la licence de lancement de XCode ou d'exécution, sudo xcodebuild -license acceptj'ai dû redémarrer mon Mac - sinon cela n'a pas fonctionné.


L'étape de redémarrage est cruciale. J'ai tâtonné pendant une heure en me demandant pourquoi cela ne fonctionnait pas. J'ai redémarré et tout fonctionnait. Merci
skellertor

3

J'ai eu le même problème lorsque j'ai essayé d'utiliser git.

Il est possible d'installer git sans lui. Et je doute que gcc sur mac soit vraiment dépendant de XCode. Et je ne veux pas utiliser root pour accepter quelque chose à moins d'être sûr d'en avoir besoin.

J'ai désinstallé XCode en accédant au dossier des applications et en faisant glisser XCode dans la corbeille.

Maintenant, mes commandes git fonctionnent comme d'habitude. Je réinstallerai XCode si / quand j'en ai vraiment besoin.


pourquoi l'utilisation du terminal pour une commande git vous obligerait-elle à accepter une licence pour toute application non liée? Ou sont-ils liés d'une manière ou d'une autre?
Scott Duncan

2

Je fais face au même problème.

Le problème à cause de X-Code.

Solution: 1. Ouvrez le code X et acceptez l'accord utilisateur (T&C). ou 2. Redémarrez votre MAC, il se résoudra automatiquement.


Bienvenue chez SO! Il existe de nombreuses réponses avec la même solution, pourriez-vous exposer les avantages de la vôtre?
David García Bodego

0

Si vous avez des problèmes similaires dans Intellij, faites comme d'autres l'ont dit plus haut:

  1. Ouvrez le terminal.
  2. Entrez cette commande: sudo xcodebuild --license.
  3. Saisissez le mot de passe du système.
  4. Allez à la fin du fichier: Appuyez sur espace (bouton) pour ce faire.
  5. Tapez «Accepter» pour la licence.

Et vous avez terminé. !!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.