이 가이드는 RiSA 앱에 macOS 코드 서명 및 공증을 적용하기 위한 Apple Developer Program 설정 방법을 설명합니다.
- ✅ Apple Developer Program 가입 ($99/년)
- ✅ macOS 시스템 (인증서 생성용)
- ✅ Xcode 설치 (최신 버전 권장)
- Xcode 실행 →
Preferences→Accounts - Apple ID 추가 (Developer Program 가입된 계정)
- Team 선택 →
Manage Certificates... - + 버튼 클릭 →
Developer ID Application선택 - 인증서가 키체인에 자동 추가됨
# 키체인 접근 앱 실행
open "/Applications/Utilities/Keychain Access.app"- 키체인 접근 → 메뉴바
키체인 접근→인증서 지원→인증 기관에서 인증서 요청... - 다음 정보 입력:
- 사용자 이메일 주소: Apple Developer 계정 이메일
- 일반 이름: 본인 이름 또는 회사명
- CA 이메일 주소: 비워둠
- 요청:
디스크에 저장됨선택 - 본인이 키 쌍 정보 지정 체크
- 계속 → 저장 위치 선택 (예:
CertificateSigningRequest.certSigningRequest) - 키 크기
2048비트, 알고리즘RSA선택 → 계속
- Apple Developer 로그인
Certificates, Identifiers & Profiles→Certificates- + 버튼 →
Developer ID Application - 위에서 생성한 CSR 파일 업로드 후 인증서 다운로드
- 다운로드한
.cer파일을 더블클릭하여 키체인에 추가
# 키체인 접근 앱 실행
open "/Applications/Utilities/Keychain Access.app"- 키체인 접근 →
로그인키체인 선택 Developer ID Application: [Your Name]인증서 찾기- 중요: 인증서 옆의 ▶ 화살표를 클릭하여 개인 키 표시
- 인증서와 개인 키를 함께 선택 (Cmd 키를 누르고 클릭)
- 우클릭 →
2개 항목 내보내기... - 파일 형식:
개인 정보 교환(.p12)선택 - 강력한 비밀번호 설정 (GitHub Secrets에서 사용)
개인 키가 보이지 않거나 선택되지 않는 경우:
- 개인 키만 선택 → 우클릭 →
"개인 키" 내보내기... - 파일 형식:
개인 정보 교환(.p12)선택 - 비밀번호 설정 후 저장
# 인증서 찾기
security find-identity -v -p codesigning | grep "Developer ID Application"
# 인증서 내보내기 (CERT_NAME을 실제 인증서 이름으로 변경)
security export -k login.keychain -t identities -f pkcs12 -o certificate.p12 -P "your-password" "Developer ID Application: Your Name""개인 키가 보이지 않음"
- Xcode → Preferences → Accounts → Download Manual Profiles
- 또는 developer.apple.com에서 인증서를 다시 다운로드
"내보내기가 비활성화됨"
- 인증서와 개인 키가 같은 키체인에 있는지 확인
- 키체인이 잠겨있지 않은지 확인
"비밀번호 오류"
- 키체인 비밀번호와 p12 내보내기 비밀번호는 다름
- p12 비밀번호는 새로 설정하는 것
- appleid.apple.com 로그인
로그인 및 보안→앱별 비밀번호비밀번호 생성→ 레이블: "GitHub Actions RiSA"- 생성된 비밀번호 복사 (다시 볼 수 없음!)
GitHub Repository → Settings → Secrets and variables → Actions
# .p12 파일을 Base64로 인코딩
base64 -i /path/to/certificate.p12 | pbcopy- 출력된 Base64 문자열을 GitHub Secret으로 추가
- .p12 파일 생성 시 설정한 비밀번호
- Apple Developer 계정 이메일 주소
- 3단계에서 생성한 앱 전용 비밀번호
# 팀 ID 확인 방법 1: Xcode
# Xcode → Preferences → Accounts → Team ID 확인
# 팀 ID 확인 방법 2: 인증서에서
security find-identity -v -p codesigning | grep "Developer ID Application"- 10자리 영숫자 조합 (예:
M4NJ645XSJ)
- GitHub Actions에서 사용할 임시 키체인 비밀번호
- 아무 강력한 비밀번호나 설정 (예: 랜덤 문자열)
# 환경변수 설정 (임시)
export APPLE_ID="your-email@example.com"
export APPLE_APP_SPECIFIC_PASSWORD="your-app-specific-password"
export APPLE_TEAM_ID="YOUR_TEAM_ID"
# 빌드 테스트
pnpm run package:mac
# 서명 확인
codesign --verify --deep --strict --verbose=2 release/mac/RiSA.app
spctl -a -t exec -vvv release/mac/RiSA.app# 새 태그 생성하여 자동 배포 테스트
git tag v0.1.6
git push origin v0.1.6- 인증서 체인 문제
- Apple Intermediate 인증서 다운로드 필요
- Apple PKI 페이지에서 다운로드
- Apple ID 또는 앱 전용 비밀번호 확인
- 팀 ID 정확성 확인
- 2FA 활성화 여부 확인
build/entitlements.mac.plist파일 권한 확인- 불필요한 권한 제거
# 공증 히스토리 확인
xcrun notarytool history \
--apple-id "$APPLE_ID" \
--password "$APPLE_APP_SPECIFIC_PASSWORD" \
--team-id "$APPLE_TEAM_ID"
# 특정 제출 상태 확인
xcrun notarytool info <submission-id> \
--apple-id "$APPLE_ID" \
--password "$APPLE_APP_SPECIFIC_PASSWORD" \
--team-id "$APPLE_TEAM_ID"- 2FA 활성화 필수
- 앱 전용 비밀번호 사용 (실제 Apple ID 비밀번호 금지)
- .p12 파일 안전한 곳에 백업
- 정기적인 인증서 갱신 (1년마다)
- GitHub에 인증서 파일 커밋
- 실제 Apple ID 비밀번호 사용
- 인증서 파일 공유
- Secrets 값 로그 출력
설정이 완료되면:
- ✅ 태그 푸시 시 자동 서명
- ✅ Apple 공증 통과
- ✅ macOS 사용자가 경고 없이 실행 가능
- ✅ GitHub Pages에 다운로드 링크 자동 업데이트
💡 참고: Apple Developer Program은 연간 갱신이 필요하며, 인증서도 정기적으로 갱신해야 합니다.