Pergunta

Eu uso uma conta de usuário padrão para minhas tarefas diárias no Mac OS. Desde a atualização para o Snow Leopard me pedem para fazer o seguinte quando um programa é executado a partir do Xcode:

"Digite o nome ea senha de um usuário no grupo das ferramentas de desenvolvedor 'para permitir que desenvolvedores ferramentas de acesso para fazer alterações"

Enquanto eu sei o nome de usuário admin / senha, isso é irritante (embora apenas necessário uma vez por login).

O acesso ferramentas de desenvolvimento está pedindo direitos de "system.privilege.taskport.debug" da aplicação gdb-i386-maçã-darwin.

Qual é a melhor maneira de contornar isso?

Foi útil?

Solução

Você precisa adicionar seu nome de usuário OS X ao grupo _developer. Veja as mensagens em esta discussão para obter mais informações. O comando a seguir deve fazer o truque:

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

Outras dicas

Finalmente, eu era capaz de se livrar dele usando DevToolsSecurity -enable no Terminal. Graças à @joar_at_work !

FYI : Eu estou no Xcode 4.3, e pressionou a Desativar quando foi lançado pela primeira vez, não pergunte por que, simplesmente assumir meu cão fez me fazê-lo:)

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

Você deve adicionar-se ao grupo Developer Tools. A sintaxe geral para adicionar um usuário a um grupo no OS X é o seguinte:

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

Eu acredito que o nome para o grupo DevTools é _developer.

A solução de Ned Deily funciona perfeitamente bem, desde que o usuário tem permissão para sudo.

Se ele não for, você pode su para uma conta de administrador, em seguida, usar o seu dscl . append /Groups/_developer GroupMembership $user, onde $ user é o nome de usuário.

No entanto, eu erroneamente pensou que não fiz porque eu erroneamente digitado o nome do usuário no comando e ele silenciosamente falhar.

Por isso, depois de entrar este comando, você deve prova de verificá-lo. Isto irá verificar se $ usuário está em $ group, onde as variáveis ??representam, respectivamente, o nome de usuário eo nome do grupo.

dsmemberutil checkmembership -U $user -G $group

Este comando irá imprimir o user is not a member of the group mensagem ou user is a member of the group.

Resposta sugerida por @Stacy Simpson:

Estamos lutando com o problema descrito nestes tópicos e nenhuma das resoluções parecem funcionar:

Como eu sou novo SO, eu não posso postar em qualquer segmento. (O primeiro é realmente fechado e estou de acordo com o raciocínio localização ...)

De qualquer forma, criamos uma forma de contornar usando AppleScript que a gente pode estar interessado no roteiro abaixo deve ser executado de forma assíncrona antes de lançar seu teste automatizado:.

osascript <script name> <password> &

Aqui está o 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

Provavelmente não muito seguro, mas é a melhor forma de contornar nós viemos acima com para permitir testes a serem executados sem a necessidade de intervenção do usuário.

Espero que eu possa obter pontos suficientes para deixar a resposta; ou, alguém pode desproteger a esta pergunta. Cumprimentos.

Aqui é a melhor solução de
Mac OS X quer keychain sistema de uso ao compilar o projeto

  1. Open Acesso às Chaves.
  2. No canto superior esquerdo, desbloquear o keychain (se ele está bloqueado).
  3. Escolha o sistema keychain a partir do canto superior esquerdo.
  4. Encontre o seu certificado de distribuição e clique no triângulo.
  5. Clique duas vezes em ‘chave privada’ sob o seu certificado de distribuição.
  6. No pop-up, vá para a guia de controle de acesso.
  7. Selecione "Permitir que todos os aplicativos para acessar este item.
  8. Salve as alterações.
  9. Feche todas as janelas.
  10. Execute o aplicativo.

Estou no Snow Leopard e este não funcionou para mim. Mas o procedimento a seguir trabalhou:

  1. Primeira adicionada outra conta com privilégios de administrador, assinalando "Permitir ao usuário administrar este computador" em Contas, por exemplo uma conta com nome de utilizador test
  2. logado no test Conta
  3. Lançada Xcode, compilado e correu o meu projeto de iPhone. Tudo ok, nenhum erro foi gerado relacionado com as permissões
  4. desconectado do test Conta
  5. Sessão iniciada com as outra conta com privilégios de administrador
  6. tirou os privilégios de administração do test conta, removendo o carrapato de "Permitir ao usuário administrar este computador" em Contas
  7. Conectado volta para o test Conta
  8. Deleted o diretório do projeto iPhone e novamente verificado a partir do repositório (no meu caso SVN)
  9. Lançada Xcode, compilado e correu o projeto. Eu não tive quaisquer erros ea App correu bem no iPhone Simulator.

Depois de executar:

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

acordo com a resposta acima, você pode ainda se solicitado a inserir na sua própria senha:

Precisamos de autorização de um usuário administrador para executar o depurador. Isso só vai acontecer uma vez por sessão de login.

O que realmente significa é qualquer _developer user groupmember assim apenas o seu usuário não-admin / password vai funcionar aqui, mas para se livrar dele completamente (sem prompts após uma reinicialização) você também precisará para executar:

sudo DevToolsSecurity -enable

(executá-lo com sudo como um usuário admin / como root irá torná-lo assim que você pode fazê-lo remotamente sem uma senha gui prompt)

Para mim, eu achei a sugestão na seguinte discussão ajudou:

Stop "desenvolvedor acesso ferramentas precisa assumir o controle de um outro processo para a depuração para continuar" alerta

Ele sugeriu executando o seguinte comando no Terminal aplicativo:

sudo /usr/sbin/DevToolsSecurity --enable
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top