Xcode/Mac OS에서 관리자가 아닌 개발자 권한 부여
저는 Mac OS에서 일상적인 작업에 표준 사용자 계정을 사용합니다.Snow Leopard로 업그레이드했기 때문에 Xcode 내에서 프로그램을 실행할 때 다음을 수행해야 합니다.
"'개발자 도구' 그룹에 있는 사용자의 이름과 암호를 입력하여 개발자 도구 액세스에서 변경할 수 있도록 합니다."
관리자 사용자 이름/암호는 알고 있지만, 이는 귀찮습니다(로그인당 한 번만 필요함).
개발자 도구 액세스가 응용 프로그램 gdb-i386-apple-darwin에서 "system.privilege.taskport.debug"에 대한 권한을 요청하고 있습니다.
이것을 피하는 가장 좋은 방법은 무엇입니까?
다음 항목을 추가해야 합니다.macOS
의 _developer
그룹. 자세한 내용은 이 스레드의 게시물을 참조하십시오.다음 명령이 수행되어야 합니다.
sudo dscl . append /Groups/_developer GroupMembership <username>
마침내, 저는 그것을 제거할 수 있었습니다.DevToolsSecurity -enable
터미널에서.@jaar_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
.
네드 딜리의 솔루션은 사용자가 할 수 있는 한 완벽하게 작동합니다.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이 제안한 대답:
우리는 이러한 스레드에 설명된 문제로 어려움을 겪고 있으며, 어떤 해결책도 효과가 없는 것 같습니다.
저는 SO가 처음이라 어느 스레드에도 게시할 수 없습니다.(첫 번째 것은 실제로 닫혔으며 현지화 추론에 동의하지 않습니다...)
어쨌든, 우리는 사람들이 관심을 가질 만한 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
그다지 안전하지는 않지만 사용자 개입 없이 테스트를 실행할 수 있도록 하는 것이 가장 좋은 해결 방법입니다.
답변을 게시할 수 있는 충분한 점수를 얻거나 누군가가 이 질문을 보호 해제할 수 있기를 바랍니다.안부 전해요.
저는 다음 스레드의 제안이 도움이 되었다는 것을 알게 되었습니다.
"디버깅을 계속하려면 개발자 도구 액세스가 다른 프로세스를 제어해야 합니다." 경고 중지
터미널 응용 프로그램에서 다음 명령을 실행할 것을 제안했습니다.
sudo /usr/sbin/DevToolsSecurity --enable
보다 나은 솔루션은 다음과 같습니다.
Mac OS X를 할 때 를 원합니다.
- 키 체인 액세스를 엽니다.
- 왼쪽 상단 모서리에서 키 체인의 잠금을 해제합니다(잠긴 경우).
- 왼쪽 상단 모서리에서 시스템 키 체인을 선택합니다.
- 배포 인증서를 찾고 공개 삼각형을 클릭합니다.
- 배포 인증서 아래의 '개인 키'를 두 번 클릭합니다.
- 팝업에서 액세스 제어 탭으로 이동합니다.
- '모든 응용프로그램이 이 항목에 액세스할 수 있도록 허용'을 선택합니다.
- 변경 내용을 저장합니다.
- 모든 창을 닫습니다.
- 응용 프로그램을 실행합니다.
저는 스노우 레오파드를 복용하고 있는데 이것은 저에게 별로 효과가 없었습니다.하지만 다음과 같은 절차가 효과가 있었습니다.
- 먼저 계정에서 "사용자가 이 컴퓨터를 관리할 수 있도록 허용"을 클릭하여 관리자 권한을 가진 다른 계정을 추가했습니다(예: 사용자 이름 테스트가 있는 계정).
- 테스트 계정에 로그인됨
- Xcode를 시작하고, iPhone 프로젝트를 컴파일하고 실행했습니다.좋아요, 권한과 관련된 오류는 발생하지 않았습니다.
- 테스트 계정에서 로그아웃됨
- 관리자 권한을 가진 다른 계정으로 로그인했습니다.
- 계정의 "사용자가 이 컴퓨터를 관리할 수 있도록 허용"에서 체크 표시를 제거하여 테스트 계정에서 관리자 권한을 제거했습니다.
- 테스트 계정에 다시 로그인했습니다.
- iPhone 프로젝트 디렉토리를 삭제하고 리포지토리에서 다시 체크아웃했습니다(내 경우 svn).
- Xcode를 시작하고, 프로젝트를 컴파일하고 실행했습니다.저는 오류가 발생하지 않았고 아이폰 시뮬레이터에서 앱이 잘 실행되었습니다.
실행 후:
sudo dscl . append /Groups/_developer GroupMembership <username>
위의 답변에 따라 자신의 암호를 입력하라는 메시지가 계속 표시될 수 있습니다.
디버거를 실행하려면 관리자의 승인이 필요합니다.이 작업은 로그인 세션당 한 번만 수행됩니다.
즉, 모든 _developer group member 사용자를 의미하므로 관리자가 아닌 사용자/암호만 여기서 작동하지만 완전히 제거하려면(재부팅 후 프롬프트 없음) 다음을 실행해야 합니다.
sudo DevToolsSecurity -enable
(sudo를 admin 사용자로/root로 실행하면 gui 비밀번호 프롬프트 없이 원격으로 실행할 수 있습니다.)
언급URL : https://stackoverflow.com/questions/1837889/authorize-a-non-admin-developer-in-xcode-mac-os
'it-source' 카테고리의 다른 글
Xcode 5.1 - 컴파일할 아키텍처 없음(ONLY_ACTIVE_ARCH=YES, 활성 arch=x86_64, VALID_ARCS=i386) (0) | 2023.05.06 |
---|---|
열 ASC로 정렬하지만 NULL 값이 먼저입니까? (0) | 2023.05.06 |
GROUP BY와 DISTINCT 사이에 차이가 있습니까? (0) | 2023.05.06 |
Swift에서 보기의 모든 하위 보기를 제거하는 방법은 무엇입니까? (0) | 2023.05.06 |
조쉬 스미스의 릴레이 명령 이행에 결함이 있습니까? (0) | 2023.05.06 |