본문 바로가기

Java

맥북 M1 이클립스가 안열릴 때 해결방법

728x90

 

이클립스를 실행하니 'Eclipse' 응용 프로그램을 열 수 없습니다. 라는 메세지가 나오고 실행이 되지 않습니다.

 

검색 후 터미널을 열어 아래와 같이 입력해줍니다.

codesign --force --deep --sign - /Applications/Eclipse.app/Contents/MacOS/eclipse

 

이 명령어는 macOS 시스템에서 codesign 도구를 사용하여 /Applications/Eclipse.app 경로에 있는 Eclipse 애플리케이션에 대해 코드 서명을 수행하는 역할을 합니다.

  • codesign: macOS에서 애플리케이션의 코드 서명을 생성하거나 검증하는 데 사용되는 명령어 도구
  • --force: 이미 서명이 되어 있는 애플리케이션에 대해 서명을 다시 할 때 기존의 서명을 덮어쓰는 역할
  • --deep: 애플리케이션 내부에 포함된 모든 실행 파일(바이너리)과 프레임워크, 플러그인 등에 대해서도 재귀적으로 서명을 수행. 이 부분을 누락하면, 최상위 수준의 애플리케이션만 서명되고 내부 구성 요소는 서명되지 않습니다.
  • --sign: 이 옵션 다음에 서명에 사용할 인증서의 이름이나 식별자를 지정.
    • 여기서 -는 "애드혹(ad-hoc)" 서명을 의미합니다. 애드혹 서명은 개발자 인증서를 사용하지 않고 실행 파일에 서명하는 방법입니다. 보안 수준은 낮지만, 개발 과정에서 임시적으로 애플리케이션을 테스트할 목적으로 사용됩니다.
  • /Applications/Eclipse.app/Contents/MacOS/eclipse: 서명 대상인 Eclipse 애플리케이션의 경로입니다. macOS에서 애플리케이션은 .app 확장자를 가진 패키지 형태로 존재하며, 이 경로는 실제 실행 가능한 바이너리 파일(eclipse)을 말합니다.

결과적으로 위의 명령어를 입력하면, /Applications/Eclipse.app에 있는 Eclipse 애플리케이션에 대하여 강제로 애드혹 서명을 수행합니다.

애플리케이션 개발 중, 혹은 다운로드 받은 애플리케이션을 macOS에서 실행하는 데 문제가 있을 때 유용하게 사용될 수 있는 명령어라고 하고, 애드혹 서명을 통해 애플리케이션의 무결성을 일시적으로 보장하며, Gatekeeper의 제한을 우회하여 애플리케이션을 실행할 수 있게 합니다.