Developer ID
Mac App Store 이외의 장소에서 다운로드한 소프트웨어 및 응용 프로그램의 경우 개발자는 Developer ID 인증서를 받고 Apple의 공증을 받기 위해 소프트웨어를 제출할 수 있습니다. 고유한 Developer ID로 소프트웨어에 디지털 서명을 하고 Apple의 공증 티켓을 포함하면 Gatekeeper에서 해당 소프트웨어가 알려진 악성 코드가 아니며 조작되지 않았음을 확인할 수 있습니다. 또한 응용 프로그램에 CloudKit과 푸시 알림 같은 고급 기능을 활용할 수 있습니다.
Developer ID 앱 준비하기
Developer ID를 사용하여 Mac 소프트웨어를 배포하려면 Apple Developer Program 또는 Apple Developer Enterprise Program의 회원이어야 하며 Developer ID 인증서를 받고 Apple의 공증을 받기 위해 앱을 제출해야 합니다. 또한 CloudKit과 같은 고급 기능(영문)을 사용하여 앱에 대한 Developer ID Provisioning Profile(권한 설정 프로파일)을 만들어야 합니다.
Developer ID 인증서 및 Provisioning Profile(권한 설정 프로파일) 만료 관리하기
Developer ID로 서명한 앱은 고객이 해당 응용 프로그램을 설치할 때 GateKeeper가 평가합니다. 응용 프로그램에서 Developer ID Provisioning Profile(권한 설정 프로파일)을 사용하여 고급 기능을 지원하는 경우 앱 설치 시점뿐만 아니라 앱이 실행될 때마다 해당 프로파일을 평가합니다. Developer ID 인증서 및 Developer ID Provisioning Profile(권한 설정 프로파일)이 만료되면 개발자와 사용자에게 어떤 영향을 미치게 되는지 알아 두는 것이 좋습니다.
Developer ID 인증서는 생성일로부터 5년 동안 유효하며 2017년 2월 22일* 이전에 생성된 Developer ID Provisioning Profile(권한 설정 프로파일)은 Developer ID 인증서 만료 시점까지 유효합니다.
- Developer ID Provisioning Profile(권한 설정 프로파일)을 사용하지 않는 앱
응용 프로그램이 설치될 때 Gatekeeper가 Developer ID 인증서의 유효성을 평가합니다. 앱을 컴파일하는 시점에 Developer ID 인증서가 유효했다면 사용자는 인증서 만료일 이후에도 앱을 다운로드하고 실행할 수 있습니다. 하지만 업데이트 및 새 응용 프로그램에 서명하려면 새로운 인증서가 필요합니다. - Developer ID Provisioning Profile(권한 설정 프로파일)을 사용하여 고급 기능을 사용하는 앱
응용 프로그램이 설치될 때 Gatekeeper가 Developer ID 인증서의 유효성을 평가하며 앱을 실행할 때마다 Developer ID Provisioning profile(권한 설정 프로파일)의 유효성을 평가합니다. 앱을 컴파일하는 시점에 Developer ID 인증서가 유효했다면 사용자는 인증서 만료일 이후에도 앱을 다운로드하고 실행할 수 있습니다. 그러나 Developer ID Provisioning Profile(권한 설정 프로파일)이 만료되면 앱을 더 이상 실행할 수 없게 됩니다. - Developer ID 설치 프로그램 인증서로 서명한 설치 프로그램 패키지
설치 프로그램 패키지가 실행될 때 Gatekeeper가 Developer ID 설치 프로그램 인증서의 유효성을 평가합니다. Developer ID 설치 프로그램 인증서가 유효할 경우에만 설치 프로그램 패키지가 실행됩니다. 만료된 Developer ID 설치 프로그램 인증서로 서명한 설치 프로그램 패키지를 실행하려면 유효한 Developer ID 설치 프로그램 인증서로 다시 서명해야 합니다.
취소된 인증서로 서명한 Developer ID 앱은 더 이상 설치할 수 없으며, 이미 설치된 경우에도 실행할 수 없습니다.
기술 메모
- Gatekeeper에 관하여
- macOS 코드 서명에 대해 자세히 알아보기(영문)
- 배포하기 전에 macOS 소프트웨어 공증받기(영문)
- 공증 작업 흐름 맞춤화하기(영문)
- 일반적인 공증 문제 해결하기(영문)
- Entitlements(권한) 문제 해결하기(영문)