나는 이것을 방화벽이 이미 기억해야 할 정도로 여러 번 받아 들였다.
예를 들어, 디버깅 모드에서 Java 프로그램을 시작할 때 Eclipse에서 가져옵니다 ... 때로는이 대화 상자가 0.5 초와 같이 매우 짧게 표시되고 사라집니다. 방화벽 환경 설정 패널 (고급 설정)에 나열되어 있어도 iTunes (도서관 공유를 활성화 할 때) 및 기타 프로그램 용으로 가져옵니다.
나는 이것을 방화벽이 이미 기억해야 할 정도로 여러 번 받아 들였다.
예를 들어, 디버깅 모드에서 Java 프로그램을 시작할 때 Eclipse에서 가져옵니다 ... 때로는이 대화 상자가 0.5 초와 같이 매우 짧게 표시되고 사라집니다. 방화벽 환경 설정 패널 (고급 설정)에 나열되어 있어도 iTunes (도서관 공유를 활성화 할 때) 및 기타 프로그램 용으로 가져옵니다.
답변:
여기에는 두 가지 옵션이 있습니다.
plist
해당 앱 의 파일을 삭제 한 후 실행 한 다음 목록에 추가 할 수 있습니다. plist는 많은 행동을 담당하며 OS로 업그레이드하거나 응용 프로그램이 "링크"를 중단시킬 수 있습니다.plist
파일 정보 ... plist는 응용 프로그램 및 기타 리소스 (일반적으로 OS)가 응용 프로그램을 실행하는 데 필요한 정보를 유지하고 재사용하는 데 사용하는 속성이 포함 된 특수한 종류의 텍스트 파일입니다. plist
파일 형식이며 일반적으로 사용자 기본 설정을 저장하는 용도가 많지만 기본적으로 XML 파일입니다. 당신은 전형적으로 모든 캐시,이 있는지 찾아보실 수 있습니다 plist
파일이에 해당 응용 프로그램에 대한, /Library/Caches
그리고 /System/Library/Caches
. 거기에 하나가 ~/Library/Caches/
있지만 거기에 몰려 다니면 나쁜 일이 발생할 수 있으므로 그냥 두십시오. 시스템은 다양한 이유로 해당 폴더에 들어가며, 일반적으로 한 달에 한 번 완전히 나열된 처음 두 폴더를 정리합니다.
sudo codesign --force --deep --sign - /path/to/application.app
이 방법을 사용하여 인증서를 만들 필요가 없었습니다.
그래도 문제가 해결되지 않으면 --deep
슬래시가 있거나없는 상태에서 시도 하십시오.
sudo codesign --force --sign - /path/to/application.app
서명을 적용한 후 앱을 시작하고 마지막으로 들어오는 연결을 수락 한 다음 종료하고 다시 시작하여 요청이 사라 졌는지 확인하십시오.
-
후에는 --sign
"임시 서명"이 사용되는 것을 의미한다; 해당 명령을 사용하기 위해 인증서가 필요하지 않습니다. 왜 이것이 터미널 사용과 모순되는지 이해하지 못합니다. man codesign
설명을 보려면 실행 하십시오.
sudo codesign --force --sign - /path/to/application.app
나를 위해 일했지만 저자가 제안한 변형은 아닙니다. --deep
슬래시가 앞뒤에 문제가 있는지 궁금합니다 .
RedYeti의 링크는 유용하지만 다른 사용자를 위해 몇 번의 클릭 만 저장하면 코드 서명 인증서를 생성하고 코드 (재) 서명에 사용하는 방법을 요약 할 수 있습니다.
자신의 코드 서명 인증서를 작성하십시오.
키 체인 액세스에서 키 체인 액세스> 인증 지원> 인증서 작성. 그러면 인증 지원이 시작됩니다.
이름 : 기억할 수있는 임의의 문자열을 여기에 입력하십시오. 그렇지 않으면 codesign
명령 행에서 사용할 때 인증서 이름을 이스케이프해야합니다 .
신원 유형 : 자체 서명 된 루트
인증 유형 : 코드 서명
"기본값 무시"상자를 선택하십시오. 이것은 매우 중요합니다
일련 번호 : 1 (인증서 이름 / 일련 번호 조합이 고유 한 경우 확인)
유효 기간 : 3650 (10 년 제공)
이메일, 이름 등 원하는대로 작성하십시오.
키 페어 정보 : RSA, 2048 비트로 설정됩니다. 실제로 IMHO는 중요하지 않습니다.
"키 사용 확장자"에서 "제목 대체 이름 확장자"까지 : 기본값을 채택하십시오.
위치 : 로그인 키 체인.
일단 생성되면, 로그인 키 체인에서 "항상 신뢰"로 설정하십시오. 인증서를 마우스 오른쪽 단추로 클릭하고 "정보 입수"를 선택하고 "신뢰"섹션에서 "이 인증서를 사용할 때"를 "항상 신뢰"로 설정하십시오.
앱 재 서명 :
codesign -f --deep -s <certname> /path/to/app
작동하는지 확인하십시오.
codesign -dvvvv /path/to/app
즐겨!
앱의 서명 여부와 관련이 있습니다. 서명하지 않으면 기본 설정이 기억되지 않습니다.
앱이 서명되어 있는지 확인하려면 터미널에서 다음을 수행하십시오.
cd path/to/your/app
codesign -vvv Eclipse.app/
Eclipse의 경우 내 서명이 전혀 없다고 말합니다. 나는 그것을 귀찮게하지 않았기 때문에 앱에 서명하는 방법에 대해 더 이상 언급 할 수 없지만 수퍼 유저에 대한이 답변은 그것을 커버합니다.
가상 환경을 사용하는 경우 환경에 사용되는 앱에 서명해야합니다. 나는 이것이 명백하다는 것을 알고 있지만 그럼에도 불구하고 말할 필요가 있었다.
나는 이것이 오래된 Q & A라는 것에 감사하지만, 같은 문제가 있었을 때 구글에서 처음으로 나왔다. 여기에 도착할 수있는 다른 사람을 위해 무언가를 추가하고 싶었습니다.
여기에 설명 된 공동 디자인 명령을 실행하려면 xcode 명령 줄 도구가 설치되어 있어야합니다. 이것이 없으면 오류 메시지가 나타납니다.
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
이 문제를 해결하려면 다음 도구를 사용하십시오.
xcode-select install
나는 ahall의 게시물에 대해 언급했지만, 그렇게 할 평판은 없습니다.
Mac 10.13에서 위의 모든 것을 시도했지만 아무것도 작동하지 않았습니다.
결국 나는 방화벽을 끄는 로그인 후크에 연결된 로그 아웃에서 실행 된 스크립트를 작성 했으므로 로그인 할 때 더 이상 권한이 필요하지 않은 다음 delayedlauncher를 사용하여 방화벽을 켜는 다른 스크립트를 실행했습니다.
이제 모두 좋아
내 상황은 MacOS Mojave 10.14.5에 설치된 두 개의 Eclipse 사본과 관련이 있습니다. 첫 번째 사본은 MacOS 방화벽으로 인증되었습니다. 두 번째 사본은 항상 "수신 연결 수락"프롬프트를 표시합니다. "Accept (허용)"를 선택하면 재부팅 할 때마다 메시지가 계속 표시되며 방화벽 설정이 업데이트되지 않은 것 같습니다.
해결책은 MacOS 시스템 환경 설정-> 보안 및 개인 정보-> 방화벽을 열고 화면의 방화벽 옵션을 잠금 해제하는 것입니다. Eclipse.app "수신 연결 허용"을 선택하고 "-"버튼으로 제거하십시오. 다음에 Eclipse에 "허용"을 선택한 경우 "수신 연결 수락"프롬프트가 마지막이었습니다.
나를위한 해결책은 방화벽을 완전히 비활성화하는 것입니다. 웹 기반 소프트웨어는 기본적으로 컴파일하기 때문에 서명되지 않은 소프트웨어를 만드는 것이 매우 일반적입니다.
CMD + Spacebar로 스포트라이트를 열고 "프라이버시"를 검색하고 "보안 및 프라이버시"를 선택하십시오. 그런 다음 "방화벽"탭으로 전환하여 방화벽을 비활성화하십시오.