현재 제품 버전은 0.1.0이며 macOS arm64의 unsigned 내부 검증 릴리스만 지원합니다. 공개 배포 전에는 Developer ID 서명과 Apple notarization이 필수입니다.
- 작업 트리와 의도한 커밋을 확인합니다.
prototype/에서 아래 검증을 모두 실행합니다.package:mac으로 DMG와 ZIP을 만듭니다.inspect:package와 패키지 Smoke Test를 통과시킵니다.- 산출물의 SHA-256을 기록하고 이전 릴리스와 별도 경로에 보관합니다.
cd prototype
npm ci
npm run build:templates
npm run typecheck
npm run test
npm run test:sites
npm run test:e2e
npm run package:mac
npm run inspect:package
npm run test:packaged
shasum -a 256 release/*.dmg release/*.ziprelease/는 Git에 커밋하지 않습니다. 버전은 package.json과 package-lock.json에서 함께 올리고, 같은 버전의 산출물을 덮어쓰지 않습니다.
0.x: 내부 검증과 제한된 테스트 배포1.0.0: 서명·공증·설치 검증과 개인정보 안내를 마친 첫 공개 릴리스- patch: 호환되는 오류·보안 수정
- minor: 하위 호환 기능 추가
- major: 저장 형식, Provider 또는 사용자 흐름의 호환되지 않는 변경
자동 업데이트는 현재 구현하지 않습니다. 서명된 공개 릴리스와 HTTPS 업데이트 저장소, 무결성·롤백 정책을 함께 준비할 때 도입합니다.
현재 electron-builder.yml은 개발 검증을 위해 mac.identity: null을 사용하고, package script는 인증서 자동 검색을 끕니다. 공개 릴리스 전에는 다음 작업이 필요합니다.
- Apple Developer 계정과 Developer ID Application 인증서 준비
- CI 비밀 저장소에 서명·공증 자격 증명 등록
identity: null과CSC_IDENTITY_AUTO_DISCOVERY=false제거- hardened runtime과 필요한 entitlement를 실제 패키지에서 검증
- notarization과 stapling 성공 확인
- 깨끗한 macOS 사용자 환경에서 DMG 설치·최초 실행 확인
자격 증명이 없는 상태에서 임의 서명값을 저장소에 넣거나 공증 완료를 주장하지 않습니다.
릴리스 후 치명적 문제가 발견되면 배포를 중단하고 직전 검증 버전과 checksum을 다시 제공합니다. 저장소 schema가 바뀌는 릴리스는 이전 앱이 새 데이터를 덮어쓰지 않도록 migration과 downgrade 정책을 먼저 추가해야 합니다.