Question

J'utilise un compte utilisateur standard pour mes tâches quotidiennes sur Mac OS. Depuis la mise à niveau Snow Leopard on me demande de faire ce qui suit lorsqu'un programme est exécuté à partir de Xcode:

« Tapez le nom et le mot de passe d'un utilisateur dans le groupe 'Outils de développement pour permettre de Outils de développement Accès à apporter des modifications »

Alors que je connais le nom d'utilisateur admin / mot de passe, cela est ennuyeux (mais seulement nécessaire une fois par connexion).

Les outils de développement l'accès demande des droits à "system.privilege.taskport.debug" de l'application gdb-i386-apple-darwin.

Quelle est la meilleure façon de contourner cela?

Était-ce utile?

La solution

Vous devez ajouter votre OS X nom d'utilisateur au groupe _developer. Voir les messages dans ce fil pour plus d'informations. La commande suivante devrait faire l'affaire:

sudo dscl . append /Groups/_developer GroupMembership <username>

Autres conseils

Enfin, j'ai pu se débarrasser de l'aide DevToolsSecurity -enable sur Terminal. Merci à @joar_at_work !

Pour votre information : Je suis sur Xcode 4.3, et appuyé sur le Désactiver quand il a lancé pour la première fois, ne demandez pas pourquoi, juste mon chien fait ASSUMER moi faire:)

$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer

Vous devez vous ajouter au groupe Outils de développement. La syntaxe générale pour l'ajout d'un utilisateur à un groupe dans OS X est comme suit:

sudo dscl . append /Groups/<group> GroupMembership <username>

Je crois que le nom du groupe est DevTools _developer.

La solution de Ned Deily fonctionne parfaitement bien, à condition que votre utilisateur est autorisé à sudo.

S'il n'est pas, vous pouvez su à un compte administrateur, puis utilisez son dscl . append /Groups/_developer GroupMembership $user, où l'utilisateur $ est le nom d'utilisateur.

Cependant, je pensais à tort qu'il n'a pas tort parce que je tapé le nom de l'utilisateur dans la commande et il échoue en silence.

Par conséquent, après avoir entré cette commande, vous devez vérifier preuve. Ceci va vérifier si l'utilisateur $ est dans le groupe de $, où les variables représentent respectivement le nom d'utilisateur et le nom du groupe.

dsmemberutil checkmembership -U $user -G $group

Cette commande soit imprimer le user is not a member of the group de message ou user is a member of the group.

Réponse suggérée par @Stacy Simpson:

Nous sommes aux prises avec le problème décrit dans ces discussions et aucune des résolutions semblent fonctionner:

Comme je suis nouveau, je ne peux pas poster dans les deux fils. (La première est en fait fermé et je suis en désaccord avec le raisonnement de localisation ...)

Quoi qu'il en soit, nous avons créé un recours au travail autour AppleScript que les gens peuvent être intéressés par le script ci-dessous doit être exécuté de manière asynchrone avant de lancer votre test automatisé.

osascript <script name> <password> &

Voici le script:

on run argv
    # Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first.
    delay 10

    # Inspect all running processes
    tell application "System Events"
        set ProcessList to name of every process
        # Determine if authentication is being requested
        if "SecurityAgent" is in ProcessList then
            # Bring this dialogue to the front
            tell application "SecurityAgent" to activate
            # Enter provided password
            keystroke item 1 of argv
            keystroke return
        end if
    end tell
end run

Probablement pas très sûr, mais il est le meilleur que nous travaillons autour avons mis au point pour permettre d'exécuter des tests sans intervention de l'utilisateur.

Si tout va bien, je peux obtenir suffisamment de points pour poster la réponse; ou, quelqu'un peut déprotéger cette question. Cordialement.

Voici une meilleure solution de
Mac OS X veut utiliser trousseau système lors de la compilation du projet

  
      
  1. Ouvrir Trousseau d'accès.
  2.   
  3. Dans le coin supérieur gauche, déverrouiller le trousseau (si elle est verrouillée).
  4.   
  5. Choisissez le trousseau système à partir du coin supérieur gauche.
  6.   
  7. Trouvez votre certificat de distribution et cliquez sur le triangle de divulgation.
  8.   
  9. Double-cliquez sur « clé privée » sous votre certificat de distribution.
  10.   
  11. Dans le menu contextuel, accédez à l'onglet de contrôle d'accès.
  12.   
  13. Sélectionnez 'Autoriser toutes les applications pour accéder à cet élément.
  14.   
  15. Enregistrer les modifications.
  16.   
  17. Fermez toutes les fenêtres.
  18.   
  19. Lancez l'application.
  20.   

Je suis sur Snow Leopard et celui-ci ne fonctionne pas vraiment pour moi. Mais la procédure suivante a fonctionné:

  1. Tout d'abord ajouté un autre compte avec des privilèges d'administrateur en cochant « Autoriser l'utilisateur à administrer cet ordinateur » Comptes, par exemple un compte avec le nom d'utilisateur test
  2. connecté au test compte
  3. Lancé Xcode, compilé et a couru mon projet iPhone. Tout ok, aucune erreur n'a été Jeté liées aux autorisations
  4. déconnecté du test compte
  5. ouvert une session avec un autre compte ayant les privilèges d'administrateur
  6. emportèrent les priviliges admin du test compte en supprimant la coche de « Autoriser l'utilisateur à administrer cet ordinateur » sous Comptes
  7. relogué dans le test compte
  8. supprimé le répertoire du projet iPhone et vérifié à nouveau du référentiel (dans mon cas svn)
  9. Lancé Xcode, compilé et dirigé le projet. Je n'ai pas eu d'erreurs et l'App a bien fonctionné dans le simulateur iPhone.

Une fois que vous exécutez:

sudo dscl . append /Groups/_developer GroupMembership <username>

par la réponse ci-dessus, vous pouvez toujours se demande d'entrer votre mot de passe:

Nous avons besoin d'une autorisation d'un administrateur pour exécuter le débogueur. Cela ne se produira une fois par session de connexion.

Qu'est-ce que cela signifie vraiment est une _developer utilisateur groupmember si juste votre utilisateur non-admin / mot de passe fonctionnera ici, mais pour se débarrasser complètement (sans invites après un redémarrage) vous aurez également besoin à exécuter:

sudo DevToolsSecurity -enable

(en cours d'exécution avec sudo en tant qu'utilisateur admin / en tant que root fera en sorte que vous pouvez le faire à distance sans mot de passe rapidement IUG)

Pour moi, je trouve la suggestion dans le fil suivant aidé:

Stop « développeur outils d'accès doit prendre le contrôle d'un autre processus de mise au point de continuer » alerte

Il a suggéré d'exécuter la commande suivante dans le Terminal application :

sudo /usr/sbin/DevToolsSecurity --enable
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top