Xcode / Mac OS에서 Admin이 아닌 개발자를 승인하십시오
-
11-09-2019 - |
문제
Mac OS의 일상 작업에 대한 표준 사용자 계정을 사용합니다. 스노우 레오파드로 업그레이드 한 이후 Xcode 내에서 프로그램이 실행될 때 다음을 수행하도록 요청받습니다.
관리자 사용자 이름/비밀번호를 알고 있지만 이는 성가시다 (로그인 당 한 번만 필요하지만).
개발자 도구 액세스는 Application GDB-I386-Apple-Darwin의 "System.privilege.taskport.debug"에 대한 권리를 요구하고 있습니다.
이것에 대한 가장 좋은 방법은 무엇입니까?
해결책
OS X 사용자 이름을 _developer
그룹. 게시물을 참조하십시오 이 스레드 자세한 내용은. 다음 명령은 트릭을 수행해야합니다.
sudo dscl . append /Groups/_developer GroupMembership <username>
다른 팁
마침내, 나는 그것을 사용하여 그것을 제거 할 수 있었다 DevToolsSecurity -enable
터미널에서. 감사합니다 @joar_at_work!
참고로: 나는 Xcode 4.3에 있고 눌렀습니다 장애를 입히다 처음으로 시작했을 때 버튼, 왜 그런지 묻지 말고, 내 개가 나를 그렇게했다고 가정합니다 :)
$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer
개발자 도구 그룹에 자신을 추가해야합니다. OS X의 그룹에 사용자를 추가하기위한 일반적인 구문은 다음과 같습니다.
sudo dscl . append /Groups/<group> GroupMembership <username>
나는 DevTools 그룹의 이름이 있다고 생각합니다 _developer
.
Ned Deily의 솔루션은 사용자가 허용되는 경우 완벽하게 작동합니다. sudo
.
그가 그렇지 않다면, 당신은 할 수 있습니다 su
관리자 계정에 사용하십시오 dscl . append /Groups/_developer GroupMembership $user
, 여기서 $ user는 사용자 이름입니다.
그러나 나는 명령의 사용자 이름을 잘못 입력했기 때문에 실수로 실수로 생각하지 않았고 조용히 실패했습니다.
따라서이 명령을 입력 한 후에는 증거를 확인해야합니다. 이렇게하면 $ user가 $ Group에 있는지 확인합니다. 여기서 변수는 각각 사용자 이름과 그룹 이름을 나타냅니다.
dsmemberutil checkmembership -U $user -G $group
이 명령은 메시지를 인쇄합니다 user is not a member of the group
또는 user is a member of the group
.
@stacy Simpson이 제안한 답변 :
우리는이 스레드에 설명 된 문제로 어려움을 겪고 있으며 결의안은 작동하지 않는 것 같습니다.
내가 새로 찍으려면 어느 스레드에서도 게시 할 수 없습니다. (첫 번째는 실제로 문을 닫고 현지화 추론에 동의하지 않습니다 ...)
어쨌든, 우리는 사람들이 관심을 가질 수있는 AppleScript를 사용하여 작업 어라운드를 만들었습니다. 아래 스크립트는 자동화 된 테스트를 시작하기 전에 비동기식으로 실행해야합니다.
osascript <script name> <password> &
다음은 스크립트입니다.
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
아마도 안전하지는 않지만 사용자의 개입없이 테스트를 실행할 수 있도록 우리가 생각해 낸 최고의 작업입니다.
바라건대, 나는 답을 게시하기에 충분한 포인트를 얻을 수 있기를 바랍니다. 또는 누군가이 질문을 보호 할 수 있습니다. 문안 인사.
다음은 더 나은 솔루션입니다
Mac OS X는 프로젝트를 컴파일 할 때 System Keychain을 사용하려고합니다.
- 열 키 체인 액세스.
- 왼쪽 상단 코너에서 키 체인을 잠금 해제하십시오 (잠긴 경우).
- 왼쪽 상단 코너에서 시스템 키 체인을 선택하십시오.
- 분포 인증서를 찾고 공개 삼각형을 클릭하십시오.
- 배포 인증서에서 '개인 키'를 두 번 클릭하십시오.
- 팝업에서 액세스 제어 탭으로 이동하십시오.
- '모든 응용 프로그램 이이 항목에 액세스 할 수 있도록 허용'을 선택하십시오.
- 변경 사항을 저장하십시오.
- 모든 창을 닫습니다.
- 응용 프로그램을 실행하십시오.
나는 스노우 레오파드에 있고 이것은 나를 위해 효과가 없었습니다. 그러나 다음 절차는 다음과 같습니다.
- 먼저 "사용자 가이 컴퓨터를 관리하도록 허용"(예 : 사용자 이름이있는 계정)에서 "사용자 가이 컴퓨터를 관리하도록 허용"으로 관리 권한이있는 다른 계정을 추가했습니다. 테스트
- 로그인했습니다 테스트 계정
- Xcode, 컴파일 및 iPhone 프로젝트를 실행했습니다. 모두, 권한과 관련하여 오류가 발생하지 않았습니다.
- 로그온했습니다 테스트 계정
- 관리자 권한이있는 다른 계정으로 로그인했습니다
- 관리자 특권을 가져갔습니다 테스트 계정에서 "사용자 가이 컴퓨터를 관리하도록 허용"에서 진드기를 제거하여 계정
- 다시 로그인했습니다 테스트 계정
- iPhone 프로젝트 디렉토리를 삭제하고 저장소에서 다시 체크 아웃했습니다 (내 경우 SVN)
- Xcode를 시작, 컴파일 및 프로젝트를 실행했습니다. 오류가 발생하지 않았고 iPhone 시뮬레이터에서 앱이 잘 진행되었습니다.
실행 후 :
sudo dscl . append /Groups/_developer GroupMembership <username>
위의 답변에 따르면, 당신은 할 수 있습니다 아직 자신의 비밀번호를 입력하라는 메시지가 표시됩니다.
디버거를 실행하려면 관리자 사용자의 권한이 필요합니다. 로그인 세션 당 한 번만 발생합니다.
그것이 실제로 의미하는 바는 것입니다 _개발자 GroupMember 사용자는 비 Admin 사용자/비밀번호 만 여기에서 작동하지만 완전히 제거하려면 (재부팅 후에 프롬프트 없음) 다음을 실행해야합니다.
sudo DevToolsSecurity -enable
(Sudo로 관리자로 실행하여/AS 루트로 실행하여 GUI 비밀번호 프롬프트없이 원격으로 수행 할 수 있도록합니다)
저에게는 다음 스레드의 제안이 도움이되었습니다.
다음 명령을 실행할 것을 제안했습니다 단말기 신청:
sudo /usr/sbin/DevToolsSecurity --enable