Apple의 macOS 소프트웨어 공증 안내는 앱 제출, 처리 상태 확인, 로그 검토와 티켓 처리를 각각 다룹니다. 이 흐름을 원격 Mac에서 진행할 수는 있지만, 공증은 App Store 심사가 아닙니다. 정식 출시 작업대로 채택하기 전 Developer ID 서명부터 제출 자격 증명, 티켓, 사용자 설치까지 직접 확인해야 합니다.
이 글은 앱을 직접 배포하는 독립 Mac 개발자, 고객에게 설치 파일을 납품하는 자유 계약 개발자, 여행 중 출시를 준비하는 원격 개발자를 위한 안내입니다.
먼저 배포 경로와 공증의 범위를 구분합니다
macOS 앱을 App Store 밖에서 직접 배포하려면 Developer ID로 서명하고 공증을 받는 흐름을 검토합니다. App Store 배포는 별도의 제출 경로입니다. Apple의 배포 방식 안내에서 대상 배포 경로를 먼저 확인하세요. App Store 제출 절차를 직접 배포 앱의 공증 절차로 바꿔 생각하면 안 됩니다.
Developer ID 서명은 앱을 배포할 때 사용할 개발자 서명 신원을 확인하는 단계입니다. 공증은 제출한 소프트웨어를 Apple이 검사하고 처리 결과를 돌려주는 절차입니다. 그러므로 서명이 정상이어도 공증 결과가 아직 나오지 않았거나, 공증을 통과해도 사용자 환경의 설치 확인이 끝나지 않았다면 출시 완료로 판단할 수 없습니다.
Developer ID 서명과 공증은 어떻게 다릅니까?
Apple은 배포용 인증서 안내에서 앱 서명에 사용하는 Developer ID Application과 설치 패키지 서명에 쓰는 Developer ID Installer를 구분합니다. 앱 번들을 배포하는지, 설치 프로그램을 배포하는지에 따라 필요한 인증서 유형을 확인해야 합니다. Developer ID 인증서 생성 안내를 기준으로 팀의 서명 자격을 점검하세요.
출발 전에 계정과 복구 경로를 준비합니다
원격 Mac에 프로젝트가 열리고 빌드가 되는 것만으로 출시 권한까지 확인된 것은 아닙니다. 팀의 개발자 계정에서 필요한 역할을 받았는지, 서명 인증서와 개인 키를 쓸 수 있는지, 공증 제출에 필요한 자격 증명을 관리할 수 있는지 따로 확인합니다. 계정 권한이 불분명하거나 개인 키를 복구할 수 없다면 실제 배포용 제출을 멈추고 팀 관리자와 먼저 정리해야 합니다.
자격 증명은 원격 데스크톱 안에 무심코 남겨 두지 않습니다. 접근 권한이 제한된 저장 방식을 선택하고, 사용이 끝난 뒤에는 세션과 보관 위치를 확인합니다. 개발자 본인이 통제해야 하는 계정 복구 정보와 팀 소유의 배포 자산도 구분해 둡니다. 프로젝트 저장소 접근 권한이 있더라도 인증서나 계정 권한이 자동으로 따라오는 것은 아닙니다.
원격 환경에서 계정에 로그인할 수 있다는 사실은 출시 권한을 증명하지 않습니다. 팀의 역할, 서명 신원, 제출 자격 증명 가운데 하나라도 확인되지 않으면 실제 고객에게 전달할 산출물 제출을 보류합니다.
출발 전에 다음 항목을 로컬에서도 복구할 수 있는지 확인합니다.
- 프로젝트 저장소와 의존성 설정에 다시 접근할 수 있는지 확인합니다.
- 개발자 계정의 역할과 서명 인증서 사용 권한을 팀 관리자와 확인합니다.
- 제출 자격 증명을 안전하게 보관하고, 원격 세션이 끊겨도 복구할 절차를 정합니다.
- 원격 환경을 사용할 수 없을 때 이어서 작업할 로컬 Mac 또는 다른 승인된 작업 환경을 남겨 둡니다.
첫 빌드에서 서명과 앱 구조를 검사합니다
Xcode에서 아카이브를 만들거나 앱이 실행되는 것만으로 배포 적합성이 입증되지는 않습니다. 앱 본체뿐 아니라 앱 안에 포함된 프레임워크와 도우미 구성 요소도 서명 상태를 확인해야 합니다. Apple의 Hardened Runtime 설정 안내는 공증 대상 앱의 설정을 점검할 때 참고할 공식 문서입니다.
오류가 발생하면 우선 빌드 로그와 서명 관련 로그를 보존합니다. 어떤 대상이 서명되지 않았는지, 인증서가 기대한 팀에 속하는지, 앱 번들 안의 구성 요소가 누락되거나 변경되지 않았는지 순서대로 살핍니다. 오류 메시지를 남기지 않은 채 설정을 여러 개 동시에 바꾸면 원인을 추적하기 어려워집니다.
여행 중 게시할 때 어느 환경을 선택합니까?
| 선택지 | 적합한 상황 | 출시 전 확인할 점 |
|---|---|---|
| 원격 Mac을 정식 작업 환경으로 사용 | 프로젝트, 팀 권한, 서명 자격 증명과 복구 절차를 실제로 검증한 경우 | 연결 중단 뒤에도 작업을 이어갈 수 있는지, 빌드와 제출 기록을 보존할 수 있는지 확인합니다 |
| 짧은 시험 뒤 원격 Mac 사용 | 원격 출시가 처음이거나 자격 증명 복구 절차를 아직 검증하지 않은 경우 | 실제 배포 프로젝트로 서명부터 사용자 설치까지 시험한 뒤 결정합니다 |
| 로컬 Mac을 예비 환경으로 유지 | 물리 장치 접근, 로컬 전용 자격 증명 또는 네트워크 제약이 있는 경우 | 원격 환경에 의존하지 않고 프로젝트와 출시 자료를 복구할 수 있게 준비합니다 |
원격 Mac에서 제출하고 처리 기록을 남깁니다
Xcode 공증 안내는 Xcode와 명령줄 도구를 포함한 공증 작업 흐름을 설명합니다. 사용하는 프로젝트와 제출 방식에 맞춰 작업하되, 제출 요청과 처리 완료 상태를 구분해 기록합니다. 예를 들어 명령줄 작업 흐름은 notarytool을 이용할 수 있습니다.
xcrun notarytool submit MyApp.zip --keychain-profile "notary-profile" --wait
위 명령은 실제 팀에서 설정한 파일 이름과 키체인 프로필에 맞게 조정해야 합니다. 프로필 이름을 임의로 정해도 자격 증명이 생성되는 것은 아닙니다. 제출 기록에는 사용한 앱 아카이브, 빌드 식별 정보, 제출 결과를 함께 남깁니다. 시차 때문에 결과 확인을 다음 근무 시간으로 넘기더라도 다른 담당자가 어떤 산출물을 제출했는지 추적할 수 있어야 합니다.
처리 결과가 거절되거나 경고가 나오면 배포를 보류하고 로그를 확인합니다. 공증 작업 흐름 맞춤 설정 문서는 제출과 처리 결과를 살필 때 참고할 수 있습니다. 로그에서 문제가 된 구성 요소와 사유를 특정한 뒤 수정하고, 새 산출물로 다시 확인합니다. 이전 산출물의 제출 기록을 새 빌드 결과와 혼동하지 않도록 파일과 로그를 함께 보관하세요.
티켓 처리와 사용자 설치를 마쳐야 출시할 수 있습니다
공증 처리 결과가 승인되었다는 사실만으로 배포 파일 검증까지 끝난 것은 아닙니다. 배포 형식에 맞춰 공증 티켓이 처리되었는지 확인하고, 완성된 파일을 실제 사용자 관점에서 시험해야 합니다. Apple의 Mac 소프트웨어 패키징 안내는 앱을 배포용으로 준비할 때 확인할 내용을 다룹니다.
stapler를 이용하는 작업 흐름에서는 티켓 처리와 검증을 따로 확인할 수 있습니다.
xcrun stapler staple MyApp.app
xcrun stapler validate MyApp.app
두 명령은 앱 번들에 적용하는 예시입니다. 실제 전달물이 설치 패키지나 디스크 이미지라면 그 형식에 맞는 Apple 안내를 확인해야 합니다. 처리 결과가 승인되었다고 해서 티켓이 기대한 전달물에 반영되었다고 단정하지 말고, 최종 파일을 다시 검사합니다.
마지막으로 깨끗한 테스트 환경에서 전달 파일을 내려받아 처음 실행하는 과정을 확인합니다. 다운로드된 파일이 의도한 산출물인지, 경고 없이 열리는지, 고객에게 안내할 설치 방법이 정확한지 살핍니다. 문제가 있으면 배포를 멈추고 로그와 최종 전달물을 대조합니다. 이 과정까지 통과해야 실제 배포 후보로 판단할 수 있습니다.
원격 작업대를 확정하기 전에 실제 프로젝트로 시험합니다
원격 Mac은 여행 중에도 macOS 빌드와 서명 작업을 이어갈 수 있는 선택지입니다. 다만 네트워크 연결이 끊기면 원격 세션에 다시 접속해야 하고, 자격 증명이나 팀 권한 문제는 접속 자체로 해결되지 않습니다. 또 프로젝트 설정과 배포 형식이 맞지 않으면 원격 환경에서도 같은 서명·공증 오류가 발생합니다.
공개된 환경 소개만으로 실제 프로젝트의 공증 성공을 보장할 수는 없습니다. 출시 전에 NodeMini의 원격 Mac 이용 안내에서 이용 방식과 사용 가능 기간을 확인하고, 본인의 프로젝트로 짧게 검증하세요. 프로젝트 이전과 출시 환경 복구 절차를 함께 정리하려면 NodeMini 안내 페이지도 참고할 수 있습니다.
Mac을 항상 휴대하는 방식은 네트워크에 의존하지 않는 장점이 있지만, 기기를 분실하거나 고장 내면 작업 환경을 다시 마련해야 하고 이동 중 짐과 관리 부담도 생깁니다. 원격 Mac은 이런 휴대 부담을 덜 수 있지만, 불안정한 와이파이와 계정 권한 문제를 대신 해결해 주지는 않습니다. 장기간 안정적인 고부하 작업이나 물리 장치 연결이 필수라면 직접 보유한 Mac이 더 적합할 수 있습니다. 출장이나 여행 중 출시 환경이 잠시 필요한 경우라면 NodeMini의 이용 방식과 기간을 먼저 살펴본 뒤, 본인의 산출물로 서명부터 설치 확인까지 시험하고 정식 작업대로 채택하는 편이 안전합니다.