피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Actions 기반 Electron 앱 macOS Signing 및 Notarization 자동화 파이프라인 구축
Automate the Boring Stuff: Electron macOS Signing & Notarization in One Git Push
AI 요약
Context
macOS Gatekeeper로 인한 미서명 앱 실행 차단 및 부정적인 사용자 경험 발생. 수동 서명 및 Notarization 과정의 반복적 공수로 인한 배포 병목 현상 직면.
Technical Solution
- Apple Developer Program 기반의 Developer ID Application 인증서를 통한 신뢰성 확보
- electron-builder의
afterSign및afterAllArtifactBuild훅을 활용한 Notarization 및 Stapling 단계의 파이프라인화 - Hardened Runtime 활성화를 통한 Apple Notary 서비스의 검증 요구사항 충족
- CSC_LINK 및 CSC_KEY_PASSWORD 환경 변수를 통한 인증서 보안 관리 및 자동 주입 구조 설계
- Git Tag 기반의 Trigger를 통한 Version Bump, Build, Sign, Notarize, Release Draft 생성의 전 과정 CD 자동화
- entitlements.mac.plist 설정을 통해 하위 헬퍼 바이너리까지 일관된 권한 상속 체계 적용
실천 포인트
1. macOS 배포 시 Hardened Runtime 설정 및 entitlements plist 정의 여부 확인
2. .p12 인증서의 Base64 인코딩을 통한 CI/CD 환경 변수 관리 체계 검토
3. Notarization 이후 Ticket을 바이너리에 결합하는 Stapling 공정 포함 여부 확인
4. Git Tag 기반의 버전 관리 및 자동 배포 워크플로우 도입 고려