노라 빌드 한 Emacs에서 tccd가 폭주하는 것을 방지 (Mojave)

5808 단어 MojavetccdEmacs

소개



Mojave에서 야라 빌드 한 Emacs에서 외부 프로세스를 부르면 tccd M-! open . 또는 browse-url
Mojave + Emacs(NS) + "open."이 느린 것은 나뿐일까. 캡처는 두 번 "open."을 발행했으며 전자는 iTerms2에서 시작된 경우. 후자는 htps // t. 5/5 vb0RC을 직접 시작한 경우. 후자는 Finder 디스플레이에 몇 초가 걸립니다. tccd 관련. 피 c. 라고 r. 코m/에자구이 ZbqV — Takaaki Ishikawa (@takaxp) 2018년 10월 26일


대처



노라 빌드한 Emacs.appcodesign 로 서명하면 OK입니다.



Keychain Access.app에서 자체 인증 만들기



Keychain Access.app를 시작하여 인증서를 만듭니다.





이름은 무엇이든 좋다고 생각합니다만, 이번은 myApp 로 합니다.





사용한 이름은 나중에 사용합니다.



Emacs.app에 서명



노라 빌드한 Emacs.app/Applications 이하로 이동해, 터미널에서 cd /Applications 합니다.



자가 인증서를 사용하여 Emacs.app를 서명합니다.



codesign --force --deep --sign "myApp" Emacs.app


비밀번호를 입력하고 잠시 기다립니다.





서명이 완료되면 확인하십시오.



codesign -vd Emacs.app


무언가 응답이 있으면 괜찮습니다 (적절 ...



이상입니다. 이것으로 Emacs.app를 기동해, M-! open .등을 해도 푸티프리 하지 않게 됩니다. 실제로 치명적이었던 것은 Org Mode의 외부 링크를 열 때 엄청난 스트레스였습니다. 이 쁘띠 프리를 해결할 수있어서 매우 행복합니다.



결론



매우 틈새 문제이지만, tccd 의 폭주에 의한 Emacs의 쁘띠 프리를 codesign 로 해결하는 방법을 소개했습니다.





이 문제를 해결할 때까지 browse-url는 애플 스크립트를 통해 회피했습니다. 만약을 위해 기록해 둡니다.



(when (and (boundp 'ns-version-string)
           (< 1600 (string-to-number
                    (let ((str ns-version-string))
                      (string-match "^appkit-\\([0-9\.]+\\) .+$" str)
                      (match-string 1 str)))))
  (defun ad:browse-url (url &rest _args)
    (do-applescript
     (concat "tell application \"Chrome\" to open location \"" url "\"")))
  (advice-add 'browse-url :override #'ad:browse-url))


References




좋은 웹페이지 즐겨찾기