자동 업데이트
Oleafly가 크로스 플랫폼 업데이터 피드를 빌드하고, 서명하고, 검증하고, 게시하는 방법입니다.
Oleafly는 Tauri의 업데이터 플러그인을 사용합니다. 앱은 실행할 때 최신 GitHub 릴리스를 확인하고, 더 새로운 버전이 있으면 자체 업데이트 창을 엽니다. 애플리케이션 메뉴나 Oleafly 정보 → 업데이트 확인에서 직접 확인할 수도 있습니다.
릴리스 피드
섹션 제목: “릴리스 피드”각 플랫폼 빌드는 서명된 업데이터 산출물과 latest.json 조각을 만듭니다. 릴리스 워크플로는 빌드 네 개가 모두 끝날 때까지 이 조각들을 따로 보관했다가, 대상마다 맡은 항목을 하나의 정식 매니페스트로 병합합니다.
최종 매니페스트에는 macOS Apple Silicon, Windows x64, Linux x64, Linux ARM64 항목이 모두 있어야 합니다. 메인테이너가 보호된 게시 워크플로를 실행하기 전까지는 초안 릴리스에 붙어 있습니다. 설치된 앱에는 초안이 보이지 않습니다.
앱은 GitHub Releases에서 latest.json을 내려받습니다. 설치하기 전에 Tauri가 src-tauri/tauri.conf.json에 내장된 공개 키로 업데이터 서명을 검증합니다. 누락되었거나 서명되지 않았거나 변조된 산출물은 거부됩니다.
릴리스 노트는 CHANGELOG.md의 해당 섹션에서 가져옵니다. 워크플로가 그 섹션을 추출해 GitHub 릴리스 본문과 업데이트 창에 똑같이 사용합니다.
서명 키
섹션 제목: “서명 키”업데이터 공개 키는 src-tauri/tauri.conf.json에 커밋되어 있습니다. 개인 키는 GitHub Actions 시크릿에만 있어야 합니다.
TAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PASSWORD
개인 키는 절대 커밋하지 마세요. 노출되었다면 새 키 쌍을 만들고, 저장소 시크릿을 갱신하고, 내장된 공개 키를 교체하세요. 이미 설치된 앱은 내장된 키를 신뢰하므로, 키를 교체하려면 계획된 수동 업데이트 경로가 필요합니다.
운영체제 서명은 업데이터 서명과 별개입니다. macOS 빌드는 릴리스 시크릿이 있으면 Apple 코드 서명과 공증을 사용합니다. Windows 빌드는 자격 증명이 있으면 Azure Artifact Signing을 사용합니다.
실패와 롤백
섹션 제목: “실패와 롤백”확인이나 다운로드가 실패해도 설치된 애플리케이션은 그대로입니다. 서명 검증에 실패하면 설치가 차단됩니다. 검증된 다운로드의 설치가 성공한 뒤에만 애플리케이션이 다시 시작됩니다.
Oleafly는 완료된 업데이트를 자동으로 롤백하지 않습니다. 이전 버전으로 돌아가려면 앱을 닫고, 중요한 프로젝트를 백업하고, 이전 공식 설치 프로그램을 내려받아 검증한 다음, 현재 버전 위에 설치하세요.
초안 및 게시 절차는 Oleafly 릴리스하기를 참고하세요.