Autorizar um desenvolvedor não-administrador no Xcode / Mac OS
-
11-09-2019 - |
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?
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:
- Stop "desenvolvedor acesso ferramentas precisa assumir o controle de um outro processo para a depuração para continuar" alerta
- autorizar um desenvolvedor não-administrador no Xcode / Mac OS
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
- Open Acesso às Chaves.
- No canto superior esquerdo, desbloquear o keychain (se ele está bloqueado).
- Escolha o sistema keychain a partir do canto superior esquerdo.
- Encontre o seu certificado de distribuição e clique no triângulo.
- Clique duas vezes em ‘chave privada’ sob o seu certificado de distribuição.
- No pop-up, vá para a guia de controle de acesso.
- Selecione "Permitir que todos os aplicativos para acessar este item.
- Salve as alterações.
- Feche todas as janelas.
- Execute o aplicativo.
Estou no Snow Leopard e este não funcionou para mim. Mas o procedimento a seguir trabalhou:
- 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
- logado no test Conta ??li>
- Lançada Xcode, compilado e correu o meu projeto de iPhone. Tudo ok, nenhum erro foi gerado relacionado com as permissões
- desconectado do test Conta ??li>
- Sessão iniciada com as outra conta com privilégios de administrador
- tirou os privilégios de administração do test conta, removendo o carrapato de "Permitir ao usuário administrar este computador" em Contas
- Conectado volta para o test Conta ??li>
- Deleted o diretório do projeto iPhone e novamente verificado a partir do repositório (no meu caso SVN)
- 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:
Ele sugeriu executando o seguinte comando no Terminal aplicativo:
sudo /usr/sbin/DevToolsSecurity --enable