Pregunta

Utilizo una cuenta de usuario estándar para mis tareas diarias en Mac OS.Desde que actualicé a Snow Leopard, se me pide que haga lo siguiente cuando se ejecuta un programa desde Xcode:

"Escriba el nombre y la contraseña de un usuario en el grupo 'Herramientas de desarrollador' para permitir que el acceso a herramientas de desarrollador realice cambios"

Si bien conozco el nombre de usuario y la contraseña del administrador, esto es molesto (aunque solo es necesario una vez por inicio de sesión).

El acceso a las herramientas de desarrollador solicita derechos para "system.privilege.taskport.debug" de la aplicación gdb-i386-apple-darwin.

¿Cuál es la mejor manera de evitar esto?

¿Fue útil?

Solución

Es necesario añadir el nombre de usuario de OS X para el grupo _developer. Ver los mensajes en este hilo para más información. El siguiente comando debe hacer el truco:

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

Otros consejos

Por último, yo era capaz de deshacerse de él utilizando DevToolsSecurity -enable en Terminal. Gracias a @joar_at_work !

FYI : Estoy en Xcode 4.3, y presioné el botón Desactivar cuando se puso en marcha por primera vez, no le pregunte por qué, simplemente asumen mi perro hizo me hago:)

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

Debe agregarse al grupo de herramientas de desarrollo. La sintaxis general para la adición de un usuario a un grupo en OS X es como sigue:

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

Creo que el nombre para el grupo DevTools es _developer.

La solución de Ned Deily funciona perfectamente bien, siempre y cuando se permite su usuario sudo.

Si no es así, se puede su a una cuenta de administrador, a continuación, utilizar su dscl . append /Groups/_developer GroupMembership $user, donde $ usuario es el nombre de usuario.

Sin embargo, pensó equivocadamente que no lo hizo porque erróneamente escrito en el nombre del usuario en el mando y en silencio falla.

Por lo tanto, después de entrar en este comando, se debe a prueba de comprobarlo. Este comprobará si $ usuario está en el grupo $, donde las variables representan, respectivamente, el nombre de usuario y el nombre del grupo.

dsmemberutil checkmembership -U $user -G $group

Este comando imprimirá o bien el mensaje o user is not a member of the group user is a member of the group.

Respuesta sugerida por @Stacy Simpson:

Estamos luchando con el problema descrito en estos hilos y ninguna de las resoluciones parece funcionar:

Como soy nuevo en SO, no puedo publicar en ninguno de los hilos.(El primero en realidad está cerrado y no estoy de acuerdo con el razonamiento de localización...)

De todos modos, creamos una solución alternativa usando AppleScript que puede interesar a la gente.El siguiente script debe ejecutarse de forma asincrónica antes de iniciar su prueba automatizada:

osascript <script name> <password> &

Aquí está el guión:

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

Probablemente no sea muy seguro, pero es la mejor solución que hemos encontrado para permitir que las pruebas se ejecuten sin requerir la intervención del usuario.

Con suerte, puedo obtener suficientes puntos para publicar la respuesta;o alguien puede desproteger esta pregunta.Saludos.

Esta es una mejor solución de
Mac OS X quiere utilizar el sistema llavero al compilar el proyecto

  
      
  1. Llavero de acceso abierto.
  2.   
  3. En la esquina superior izquierda, desbloquear el llavero (si está bloqueado).
  4.   
  5. Elija el llavero del sistema en la esquina superior izquierda.
  6.   
  7. Encuentre su certificado de distribución y haga clic en el triángulo desplegable.
  8.   
  9. Haga doble clic en ‘clave privada’ bajo su certificado de distribución.
  10.   
  11. En la ventana emergente, ir a la pestaña de control de acceso.
  12.   
  13. Seleccione ‘Permitir a todas las aplicaciones para acceder a este artículo’.
  14.   
  15. Guarde los cambios.
  16.   
  17. Cierre todas las ventanas.
  18.   
  19. Ejecutar la aplicación.
  20.   

Estoy en Snow Leopard y este no me funcionó del todo.Pero el siguiente procedimiento funcionó:

  1. Primero agregue otra cuenta con privilegios de administrador marcando "Permitir al usuario administrar esta computadora" en Cuentas, por ejemplo, una cuenta con nombre de usuario. prueba
  2. Ingresado al prueba cuenta
  3. Lancé Xcode, compilé y ejecuté mi proyecto de iPhone.Todo bien, no se arrojaron errores relacionados con los permisos.
  4. Cerrado sesión en prueba cuenta
  5. Inicié sesión con otra cuenta que tiene privilegios de administrador.
  6. Le quitó los privilegios de administrador al prueba cuenta quitando la marca de "Permitir al usuario administrar esta computadora" en Cuentas
  7. Volvió a iniciar sesión en prueba cuenta
  8. Eliminé el directorio del proyecto de iPhone y lo extraje nuevamente del repositorio (en mi caso, svn)
  9. Lanzó Xcode, compiló y ejecutó el proyecto.No recibí ningún error y la aplicación funcionó bien en el simulador de iPhone.

Después de ejecutar:

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

por la respuesta anterior, es posible que Todavía get le pida que introduzca en su propia contraseña:

Necesitamos la autorización de un usuario administrador para ejecutar el depurador. Esto sólo ocurrirá una vez por sesión de inicio de sesión.

Lo que realmente significa es cualquier _developer de usuario groupmember por lo que sólo el usuario no administrador / contraseña funcionará aquí, pero para deshacerse de él por completo (no hay indicaciones después de un reinicio) también necesitará para funcionar:

sudo DevToolsSecurity -enable

(ejecutarlo con sudo como un usuario administrador / root lo hará de modo que puede hacerlo de forma remota sin una solicitud de contraseña GUI)

Para mí, me encontré con la sugerencia en el siguiente hilo ayudó:

Stop "desarrollador acceso herramientas necesita para tomar el control de otro proceso de depuración para continuar" alerta

Se sugiere ejecutar el siguiente comando en el Terminal aplicación:

sudo /usr/sbin/DevToolsSecurity --enable
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top