Xcode / Mac OS에서 관리자가 아닌 개발자에게 권한 부여
Mac OS에서 일상적인 작업에 표준 사용자 계정을 사용합니다. Snow Leopard로 업그레이드 한 후 Xcode 내에서 프로그램을 사용할 때 다음을 수행해야합니다.
" '개발자 이름'그룹에있는 사용자의 이름과 비밀번호를 입력하여 개발자 도구 액세스 권한을 매체 도구 수 있습니다."
사용자 이름 / 암호를 알고 싶습니다. 성가신 일입니다 (로그인 당 한 번만 필요함).
개발자 도구 액세스는 애플리케이션 gdb-i386-apple-darwin에서 "system.privilege.taskport.debug"에 대한 권한을 요청합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
OS X 사용자 이름을 _developer
그룹 에 추가해야합니다 . 자세한 내용은 이 콘텐츠 의 게시물 을 참조하십시오. 다음 명령이 트릭을 수행해야합니다.
sudo dscl . append /Groups/_developer GroupMembership <username>
마지막으로 DevToolsSecurity -enable
터미널에서 제거 할 수 있습니다 . @joar_at_work 에게 감사드립니다 !
참고 : 나는 엑스 코드 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이 제안한 답변 :
이 경우에 사용하는 문제 해결 방법이 작동하지 않는 것입니다.
나는 처음에도 어느 하나의 게시 할 수 없습니다. (첫 번째는 실제로 닫혀 있으며 현지화 추론에 동의하지 않습니다 ...)
어쨌든, 우리는 관심을 방법을 사용하여 만들었습니다. 아래부터 시작하기 전에 자동화 된 테스트를 시작하기 시작합니다.
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에서 프로젝트를 사용할 때 시스템 키 체인을 사용하려는 더 나은 솔루션입니다.
- 키 체인 접근을 도달 다.
- 왼쪽 상단 모서리에서 키 체인을 잠금 해제합니다 (잠긴 경우).
- 왼쪽 상단 모서리에서 시스템 키 체인을 선택합니다.
- 배포 인증서를 찾고 공개 삼각형을 클릭하십시오.
- 배포 인증서 아래의 '개인 키'를 두 번 클릭합니다.
- 팝업에서 액세스 제어 탭으로 이동합니다.
- '모든 애플리케이션이이 항목에 액세스하도록 허용'을 선택합니다.
- 변경 사항을 저장하십시오.
- 모든 창을 닫습니다.
- 응용 프로그램을 실행하십시오.
나는 Snow Leopard를 사용하고 있는데 이것은 나에게 잘 맞지 않았습니다. 그러나 다음 절차는 작동했습니다.
- 먼저 계정에서 "사용자가이 컴퓨터를 관리하도록 허용"을 선택하여 관리자 권한이있는 다른 계정을 추가했습니다 (예 : 사용자 이름 테스트가 있는 계정).
- 에 로그인 테스트 계정
- Xcode를 시작하고 내 iPhone 프로젝트를 컴파일하고 실행했습니다. 모두 좋아, 권한과 관련된 오류가 발생하지 않았습니다.
- 테스트 계정 에서 로그 아웃했습니다.
- 관리자 권한이있는 다른 계정으로 로그인했습니다.
- 계정 아래의 "사용자가이 컴퓨터를 관리하도록 허용"확인란을 제거 하여 테스트 계정 에서 관리자 권한을 제거했습니다.
- 테스트 계정에 다시 로그인했습니다.
- iPhone 프로젝트 디렉토리를 삭제하고 저장소에서 다시 체크 아웃했습니다 (제 경우에는 svn).
- Xcode를 시작하고 프로젝트를 컴파일하고 실행했습니다. 오류가 발생하지 않았고 앱이 iPhone Simulator에서 잘 실행되었습니다.
실행 후 :
sudo dscl . append /Groups/_developer GroupMembership <username>
위의 답변 에 따라 자신의 비밀번호를 입력하라는 메시지 가 계속 표시 될 수 있습니다 .
디버거를 실행하려면 관리자의 권한이 필요합니다. 이것은 로그인 세션 당 한 번만 발생합니다.
실제로 의미하는 것은 모든 _developer groupmember 사용자이므로 관리자가 아닌 사용자 / 암호 만 여기에서 작동하지만 완전히 제거하려면 (재부팅 후 프롬프트 없음) 다음을 실행해야합니다.
sudo DevToolsSecurity -enable
(관리자 / 루트로 sudo로 실행하면 GUI 암호 프롬프트없이 원격으로 수행 할 수 있습니다.)
나를 위해 다음 스레드의 제안이 도움이되었음을 알았습니다.
"계속하려면 디버깅을 위해 다른 프로세스를 제어해야하는 개발자 도구 액세스"경고 중지
터미널 애플리케이션 에서 다음 명령을 실행할 것을 제안했습니다 .
sudo /usr/sbin/DevToolsSecurity --enable
참고 URL : https://stackoverflow.com/questions/1837889/authorize-a-non-admin-developer-in-xcode-mac-os
'IT' 카테고리의 다른 글
모든 약속이 해결 될 때까지 기다리십시오. (0) | 2020.08.10 |
---|---|
C ++ : 어떤 정규식 라이브러리를 사용합니까? (0) | 2020.08.10 |
MySQL에서 이름 설정 utf8? (0) | 2020.08.10 |
Oracle에서 사용자의 모든 권한을 표시하는 방법은 무엇입니까? (0) | 2020.08.10 |
PyQt 애플리케이션에서 스레딩 : Qt 프로그램 또는 Python 사용을 사용합니까? (0) | 2020.08.10 |