본문 바로가기

추천팁/문제해결

macOS에서 앱을 실행했을 때 "손상되었기 때문에 열 수 없습니다." 오류 메시지가 뜨는 문제와 해결 방법

며칠 전 한 구독자로부터 블로그에서 내려받은 파일이 작동하지 않는다는 메일을 받았습니다.

마우스 오른쪽 버튼으로 파일이나 텍스트 등을 클릭했을 때 표시되는 컨텍스트 메뉴의 서비스 항목 개수를 조절하는 앱인데 (링크), macOS 시에라에서 실행하면 다음과 같은 메시지만 뜬다는 것이었습니다.

"xxx은(는) 손상되었기 때문에 열 수 없습니다. 해당 항목을 휴지통으로 이동해야 합니다."

제 맥에서도 같은 현상이 나타나 인터넷을 검색하니 비슷한 질문과 게시물을 많이 발견할 수 있었습니다.

원인은 크게 두 가지로 압축할 수 있는데 하나는 앱이 실제로 손상된 것이고, 다른 하나는 맥 운영체제의 보안 기능인 '게이트키퍼(Gatekeeper)'를 통과하지 못해서 발생하는 문제입니다.

첫 번째 케이스는 다운로드 도중 오류가 발생했거나 애초에 개발자가 문제가 있는 앱을 배포하고 있는 것일 수 있습니다. 따라서 앱을 다시 내려받거나 개발자에서 정상적인 파일을 요청하셔야 합니다.

두 번째 케이스는 앱 내부에 있는 디지털 서명이 손상되었거나, 다른 사람에 의해 변조된 경우일 수 있습니다. (이번 질문과는 상관 없지만, 유료 앱을 공짜로 사용할 수 있도록 디지털 서명을 크랙한 경우 실행할 때 주로 발생하는 것으로 전해지더군요.)

macOS Sierra에 숨겨진 '모든 곳' 옵션 활성화하기

앞서 백투더맥에 올린 앱은 애플스크립트를 앱 형태로 사용할 수 있도록 제작한 것일 뿐 크랙 앱과는 거리가 멉니다. macOS 시에라부터 보안 정책이 엄격해지면서 이런 형태의 앱도 마치 위변조된 앱으로 취급되는 듯한데, 이를 우회하기 위해서는 한 가지 작업을 별도로 해주어야 합니다.

가장 확실한 해결 방법은 앞서 한 차례 소개한 것과 같이 게이트키퍼를 잠시 끄는 것입니다. OS X 10.11 엘 캐피탄까지는 시스템 환경설정을 통해 게이트키퍼를 간단히 끌 수 있 수 있지만, macOS 시에라부터는 터미널 명령어를 사용해야 합니다.

1. 응용 프로그램 > 유틸리티 폴더에 있는 '터미널(Terminal)'을 실행하고 아래와 같이 명령어를 입력하고 엔터 키를 누르세요. 사용자 계정 암호도 이어서 입력해야 합니다. ▼

sudo spctl --master-disable

2. 애플() 메뉴 > 시스템 환경설정 > 보안 및 개인 정보 보호 > 일반 탭을 열면 앱 스토어나 확인된 개발자가 아닌 프로그램도 실행할 수 있는 '모든 곳' 옵션이 활성화된 것을 볼 수 있습니다. ▼

이 옵션이 체크된 상태에서 앱을 다시 실행하면 정상적으로 작동됩니다. ▼

앱을 한 번 실행하면 같은 작업을 반복할 필요 없이 정상적으로 이용할 수 있습니다. 앱 작동 여부가 확인되면 운영체제 보안을 위해 게이트키퍼 옵션은 가급적이면 기본값으로 재설정하시기 바랍니다.



관련 글
애플, macOS에서 확인되지 않은 개발자가 배포한 앱 실행하는 옵션 삭제
애플, OS X 요세미티에 새로운 소프트웨어 인증 방식 도입
서비스 항목 개수에 상관없이 컨텍스트 메뉴에 모두 표시하기