Desktop releases 개요
Desktop releases는 CI에서 데스크톱 앱을 배포하는 기능입니다. 릴리스 워크플로가 서명된 빌드를 올리면, Mocco가 빌드를 검사하고 채널에 게시한 뒤 사용자와 앱에 필요한 것을 모두 제공합니다.
프로젝트 사이트의 릴리스 페이지: 플랫폼별 다운로드 버튼과 모든 버전의 노트가 있습니다 (
/releases, 각 버전은/releases/<version>).플랫폼별 다운로드 링크: 바뀌지 않으며 항상 최신 설치 파일로 연결됩니다 (
…/latest/darwin-aarch64). 웹사이트에 넣어 두세요.Tauri 업데이터 엔드포인트: 설치된 앱이 새 버전을 스스로 찾아 설치합니다.
릴리스 목록 JSON: 직접 만든 다운로드 버튼에 사용합니다.
Tauri 2 앱을 먼저 지원합니다. Electron과 Sparkle 피드는 이후에 지원합니다.

동작 방식
릴리스는 버전(0.2.0 같은 SemVer)과 그 파일의 묶음입니다. 각 플랫폼(darwin-aarch64, darwin-x86_64, windows-x86_64, linux-x86_64)에는 두 종류의 파일이 있습니다. 사용자가 내려받는 설치 파일(macOS에서는 .dmg)과, 앱이 스스로 설치하는 업데이트 번들(.app.tar.gz)입니다. 업데이트 번들 옆에는 Tauri가 쓴 서명 파일이 함께 있습니다.
업로드. CI가 버전과 파일을 선언하고, 각 파일을 스토리지에 바로 올린 뒤 마무리(finalize)합니다. 같은 버전으로 작업을 다시 실행하면 이어서 진행하며, 이미 검증된 파일은 다시 올리지 않습니다.
검증. Mocco가 각 파일의 크기와 SHA-256을 확인하고, 업데이트 번들의 서명을 앱의 업데이터 공개 키로 확인합니다. 모든 파일이 통과해야 릴리스를 게시할 수 있습니다. 실패하면 어느 파일이 왜 실패했는지 릴리스에 표시됩니다.
게시. 검증된 릴리스를 CI나 콘솔에서 채널(
stable)에 게시합니다. 채널은 플랫폼마다 한 버전을 제공하며, Tauri가 더 새로운 버전만 설치하므로 더 새로운 버전만 기존 버전을 대체할 수 있습니다.회수. Yank는 문제가 있는 버전을 즉시 멈춥니다. 다운로드가 중단되고, 채널은 이전에 제공하던 버전으로 돌아갑니다. 이미 설치한 앱은 그 버전을 유지하므로, 해결하려면 더 새로운 릴리스를 내야 합니다.
Mocco가 보관하는 것과 절대 보관하지 않는 것
Mocco는 빌드를 비공개로 보관하고, 게시한 뒤에만 제공합니다. 초안은 워크스페이스 멤버에게만 보입니다.
Mocco는 앱의 업데이터 공개 키와 CI가 만든 서명을 보관합니다. 개인 키는 절대 보관하지 않으며 아무것도 서명하지 않습니다. 설치된 앱은 앱에 내장된 키로 모든 업데이트를 검증하므로, Mocco가 서명하지 않은 빌드를 설치하게 만들 수 없습니다.
코드 서명과 공증(macOS의 Developer ID)은 직접 해야 합니다. 업로드 전에 CI에서 처리하세요.
기본값은 모든 빌드를 보관하는 것입니다. 실패한 업로드와 초안을 며칠 뒤 삭제하도록 설정할 수 있습니다 (Setup → Retention). 게시된 버전은 삭제하지 않습니다.
다음 단계
Tauri 앱 게시하기: 앱, 업데이터, 릴리스 워크플로를 설정합니다.
curl로 게시하기: Action 없이 어떤 CI에서든 같은 단계를 실행합니다.