2016-12-14 1 views
0

현재 관리자 로그인이 대화 상자에 입력 된 경우에만 응용 프로그램을 열려고합니다.OSX Swift Application에서 관리자 로그인을 요청하려면 어떻게해야합니까?

set adminLogin to do shell script "" with administrator privileges 
display dialog adminLogin 

이 내가 원하는 대화 상자를 표시하고, 나는 그것을 수행 할 NSTask이 점을 던질 수 있었다 : 나는 다음과 같은 방법에 따라 애플 스크립트를 사용하여 시도했습니다. 심지어 출력을 잡고 그 응용 프로그램을 닫으려면 if 성명서를 사용할 수 있습니다.

osascript가 아닌 실제 응용 프로그램을 사용하여 계속하려면 관리자 로그인이 필요하며이 scpt 파일은 실제 사용을 위해 컴파일, 빌드 및 보관하자마자 사라집니다. 이 파일을 만든 후 모든 파일을이 클라이언트에 다시 추가해야합니다. 응용 프로그램이 보유하고있는 것과 동일한 프로세스를 사용하는 것보다는 오히려 악용 될 수있는 빠른 로그인을 위해 다른 태스크에 의존한다는 사실에 너무 효과적이지는 않습니다.

프로그래밍 방식으로 응용 프로그램을 계속 열려면 관리자 로그인을 요청할 수있는 방법이 있습니까? CoreLocation을 사용할 수 있습니까? 아니면 AuthorizationServices()을 사용하여이 작업을 수행 할 수 있습니까?

+0

인가? –

+0

@ElTomato가 아니기 때문에 App Store에 제출할 계획이 없습니다. – dylan

답변

1

LocalAuthentication 프레임 워크를 살펴보십시오. Touch ID와 장치 패스 코드 인증을 모두 처리하는 deviceOwnerAuthentication에 대한 정책이 있습니다.

LocalAuthentication Framework 참조 : https://developer.apple.com/reference/localauthentication

deviceOwnerAuthentication : 맥 앱 스토어에 제출 데스크톱 응용 프로그램을 위해 https://developer.apple.com/reference/localauthentication/lapolicy/1514164-deviceownerauthentication

+0

이것은 iOS가 아닌 OSX 애플리케이션 용입니다. 새로운 Touchbar에서 Touch ID를 의미한다면 2015 년 Macbook Air 모델을 사용하고 있습니다. – dylan

+0

@dylan LocalAuthentication 프레임 워크는 10.10 이후의 macOS에서 지원됩니다. 터치 ID와 장치 패스 코드를 모두 지원합니다. 하지만 사용자 기반에 가장 적합한 정책을 지정할 수 있습니다. –

관련 문제