J'utilise un compte utilisateur standard pour mes tâches quotidiennes sous Mac OS. Depuis la mise à niveau vers Snow Leopard, je suis invité à effectuer les opérations suivantes lorsqu'un programme est exécuté à partir de Xcode:
"Saisissez le nom et le mot de passe d'un utilisateur dans le groupe" Outils de développement "pour autoriser l'accès aux outils de développement à apporter des modifications"
Bien que je connaisse le nom d'utilisateur / mot de passe de l'administrateur, c'est ennuyeux (bien que requis une seule fois par connexion).
L'accès aux outils de développement demande les droits sur "system.privilege.taskport.debug" depuis l'application gdb-i386-apple-darwin.
Quelle est la meilleure façon de contourner cela?
la source
-u <name-of-account-with-root-access>
aux options. Donc, ma commande complète étaitdscl -u <root-account> . append /Groups/_developer GroupMembership <my-account>
Enfin, j'ai pu m'en débarrasser en utilisant
DevToolsSecurity -enable
sur Terminal. Merci à @joar_at_work !FYI : je suis sur Xcode 4.3 et j'ai appuyé sur le bouton de désactivation lors de son premier lancement, ne demandez pas pourquoi, supposez simplement que mon chien m'a fait le faire :)
la source
-enable
par-disable
et cela fonctionne comme prévu!dscl -u <root-account> . append /Groups/_developer GroupMembership <my-account>
la source
Vous devez vous ajouter au groupe Outils de développement. La syntaxe générale pour ajouter un utilisateur à un groupe sous OS X est la suivante:
Je crois que le nom du groupe DevTools est
_developer
.la source
La solution de Ned Deily fonctionne parfaitement bien, à condition que votre utilisateur y soit autorisé
sudo
.S'il ne l'est pas, vous pouvez
su
accéder à un compte administrateur, puis utiliser le siendscl . append /Groups/_developer GroupMembership $user
, où $ user est le nom d'utilisateur.Cependant, j'ai pensé à tort que ce n'était pas le cas car j'ai mal tapé le nom de l'utilisateur dans la commande et cela échoue silencieusement.
Par conséquent, après avoir entré cette commande, vous devez la vérifier. Cela vérifiera si $ user est dans $ group, où les variables représentent respectivement le nom d'utilisateur et le nom du groupe.
Cette commande imprimera le message
user is not a member of the group
ouuser is a member of the group
.la source
dscl . append /Groups/_developer GroupMembership username
etdsmemberutil checkmembership -U "username goes here" -G "group goes here"
Réponse suggérée par @Stacy Simpson:
Nous sommes aux prises avec le problème décrit dans ces fils et aucune des résolutions ne semble fonctionner:
Comme je suis nouveau dans SO, je ne peux publier dans aucun fil. (Le premier est en fait fermé et je ne suis pas d'accord avec le raisonnement de localisation ...)
Quoi qu'il en soit, nous avons créé une solution de contournement à l'aide d'AppleScript qui pourrait intéresser les gens. Le script ci-dessous doit être exécuté de manière asynchrone avant de lancer votre test automatisé:
Voici le script:
Probablement pas très sécurisé, mais c'est la meilleure solution que nous ayons trouvée pour permettre aux tests de s'exécuter sans nécessiter l'intervention de l'utilisateur.
J'espère que je pourrai obtenir suffisamment de points pour publier la réponse; ou quelqu'un peut déprotéger cette question. Cordialement.
la source
Voici une meilleure solution de
Mac OS X qui souhaite utiliser le trousseau système lors de la compilation du projet
la source
Pour moi, j'ai trouvé la suggestion dans le fil suivant aidé:
Stop "L'accès aux outils de développement doit prendre le contrôle d'un autre processus de débogage pour continuer" alerte
Il a suggéré d'exécuter la commande suivante dans l' application Terminal :
la source
Je suis sur Snow Leopard et celui-ci n'a pas vraiment fonctionné pour moi. Mais la procédure suivante a fonctionné:
la source
Après avoir couru:
selon la réponse ci-dessus, vous pouvez toujours être invité à entrer votre propre mot de passe:
Nous avons besoin de l'autorisation d'un utilisateur administrateur pour exécuter le débogueur. Cela ne se produira qu'une seule fois par session de connexion.
Ce que cela signifie vraiment est tout _developer utilisateur groupmember afin que votre utilisateur / mot de passe non-admin fonctionnera ici , mais pour se débarrasser complètement (sans invites après un redémarrage) , vous aurez également besoin de courir:
(l'exécuter avec sudo en tant qu'utilisateur admin / en tant que root vous permettra de le faire à distance sans invite de mot de passe gui)
la source