콘텐츠로 이동

macOS 권한(TCC) 문제 해결하기: 안정적인 앱 개발을 위한 가이드

개발하다 보면 분명 어제까지 잘 작동하던 권한 팝업이 갑자기 나타나지 않아 당황스러운 적이 있을 거예요. 코드는 바뀐 게 없는데 macOS가 입을 꾹 닫아버리면 정말 답답하죠.

이런 현상은 macOS의 TCC(Transparency, Consent, and Control)가 앱을 인식하는 방식 때문에 발생해요. TCC는 앱의 코드 서명, bundle identifier, 그리고 디스크 상의 경로를 조합해서 권한을 관리합니다. 이 중 하나라도 바뀌면 macOS는 이를 완전히 새로운 앱으로 인식하고, 보안을 위해 기존 권한을 무시하거나 팝업을 띄우지 않기도 합니다.

  • 고정된 앱 실행 경로 (예: dist/OpenClaw.app)
  • 고정된 bundle identifier
  • Apple Development 또는 Developer ID 인증서
  • tccutil 실행 권한

안정적인 권한 관리를 위해 다음 4가지 원칙을 지키는 것이 중요해요.

  1. 고정된 경로 사용: 앱을 항상 동일한 위치에서 실행하세요.
  2. Bundle ID 유지: bundle identifier가 바뀌면 macOS는 이를 다른 앱으로 간주합니다.
  3. 정식 서명 활용: Ad-hoc 서명은 빌드할 때마다 새로운 식별자를 생성하므로, 실제 Apple 인증서를 사용해 서명하세요.
  4. Workspace 활용: Desktop이나 Documents 폴더 접근 권한 문제가 번거롭다면, 파일을 OpenClaw workspace(~/.openclaw/workspace)로 옮겨서 관리하세요.

Ad-hoc 서명은 로컬에서 빠르게 테스트할 때만 사용하고, 권한 설정이 중요한 경우에는 반드시 실제 인증서를 사용해야 권한이 유지됩니다.

권한 팝업이 더 이상 나타나지 않는다면 아래 순서대로 시도해 보세요.

  1. 앱을 완전히 종료합니다.
  2. 시스템 설정 > 개인정보 보호 및 보안에서 해당 앱의 항목을 수동으로 제거합니다.
  3. 앱을 이전과 동일한 경로에서 다시 실행하고 권한을 다시 승인합니다.
  4. 여전히 팝업이 뜨지 않는다면 tccutil 명령어로 TCC 엔트리를 직접 초기화하세요.
Terminal window
# 특정 권한 초기화 예시 (bundle ID에 맞게 수정)
sudo tccutil reset Accessibility bot.molt.mac
sudo tccutil reset ScreenCapture bot.molt.mac
sudo tccutil reset AppleEvents

일부 권한 설정은 macOS를 완전히 재시작해야만 다시 활성화되는 경우도 있으니 참고하세요. 또한 Terminal이나 iTerm 같은 프로세스에서 실행되는 백그라운드 작업의 경우, 해당 터미널 앱 자체에 파일 접근 권한이 있는지 확인해야 합니다.


도움이 더 필요하신가요? AI Setup Assistant에게 질문해 보세요.

OpenClaw

OpenClaw Expert

아직 막혀 있나요?

이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.