권한을 업데이트하지 않는 보안 및 개인 정보 / 접근성


1

화면에 몇 개의 창 버튼을 누르는 약간의 애플 스크립트가 있습니다. 사용 중에 '보안 및 개인 정보-> 접근성'에서 권한을 부여해야한다는 팝업이 표시됩니다. 권한을 활성화하는 확인란이 작동하지 않습니다. 회색으로 표시되지 않고 걸리지 않습니다. 번들이 추가되었지만 확인란을 클릭해도 뚜렷한 효과가 없습니다.

TCC.db는 내게 필요한 옵션 권한의 기본 구현이라는 것을 이해하고 있습니다. 다음은 앱을 실행하려고 시도한 직후 '액세스'테이블의 모습입니다. $ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'select * from access' kTCCServiceAccessibility|com.company.applet|0|0|1||

권한을 활성화하기 위해 확인란을 클릭 한 후 표는 다음과 같습니다. $ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'select * from access' kTCCServiceAccessibility|com.company.applet|0|0|1|| kTCCServiceAccessibility|/Users/luser/Applications/applet.app|1|1|1||

이것으로부터, 나의 이론은 접근성 권한 메커니즘이 앱을 com.company.applet와 설치 경로라는 두 개의 다른 이름으로보고 있다는 것입니다. 그러나 문제를 해결하기 위해 macOS에 대해 충분히 알지 못합니다. 아무도 무슨 일이 일어나고 있는지 이해할 수 있습니까? 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

감사!

추가 세부 사항:

내 빌드 프로세스는 애플 스크립트를 osacompile에 공급하여 ~ / Applications / applet.app 번들을 생성합니다. 그런 다음으로 CFBundleIdentifier를 수동으로 추가 /usr/libexec/PlistBuddy -c 'Add :CFBundleIdentifier string "com.company.applet"' ~/Applications/applet.app/Contents/Info.plist합니다. plist CFBundleIdentifier 업데이트를 생략해도 응용 프로그램은 여전히 ​​접근성 검사에 실패합니다.

스크립트 편집기에서 번들을 빌드 할 수 있으며 모든 것이 작동합니다. 그러나 이것은 바람직한 장기 해결책이 아닙니다. 모든 것을 버전 관리로 유지하고 싶습니다. 스크립트 편집기에서 생성 된 아티팩트는 바이너리이므로 git에 적합하지 않습니다.

마지막으로, 이전 버전의 macOS와 같이 TCC.db를 직접 수정할 수 있었지만 이제는 모든 쓰기 작업이 실패합니다. SIP를 비활성화하고 싶지 않습니다.


다른 질문에 오신 것을 환영합니다! 이것은 잘 쓰여진 질문이며 질문을하기 전에 +1해야합니다. defaults작성하는 데 사용하면 차이 가 CFBundleIdentifier있습니까? 또한 테스트와 마찬가지로 원하는 방식으로 앱을 만든 후 스크립트 편집기에서 앱을 열면 컴파일 및 저장을 누른 다음 시스템 환경 설정> 보안 및 개인 정보> 개인 정보> 접근성에 추가하기 전에 닫습니다. 그런 다음 문제없이 확인할 수 있습니까?
user3439894 2018 년

답변 주셔서 감사합니다! 기본값을 사용해도 차이가 없습니다. 권한이 활성화되어 있지 않습니다. 스크립트 편집기를 사용하여 컴파일 및 저장해도 마법 수정이 제공되지 않습니다. 흥미롭게도이 후에 응용 프로그램은 TCC.db 데이터베이스에 전혀 나타나지 않습니다. 또한 defaults read도메인별로 응용 프로그램을 찾지 못하면 (예 : com.company.applet) 주석이 제한됩니다. 따라서 많은 편집.
Hefeweizen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.