For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/desktop/signing.md (or send Accept: text/markdown).
코드 서명
인스톨러에 서명해 macOS와 Windows가 사용자에게 경고하지 않게 하세요.
초보자 연습
전제 조건: Rust 및 운영 체제 빌드 도구를 포함한 데스크톱 로컬 설정을 완료합니다. 설치 프로그램을 구축하기 전에 Tauri 개발 프로세스를 중지하십시오. 웹 백엔드를 실행 상태로 둡니다. 저장소 루트에서 아래의 각 검사를 실행하고 다음 검사를 실행하기 전에 완료될 때까지 기다립니다. 필터링된 패키지 명령은 데스크탑 전용 및 모든 플랫폼 체크아웃에서 작동합니다.
빠른 용어: 작업 영역은 한 팀의 별도 사용자, 데이터 및 설정입니다. 서버는 신뢰할 수 있는 백엔드입니다. 제공업체 키를 브라우저 및 전화 코드에 보관하세요. 마이그레이션은 테이블을 생성하거나 업데이트하는 버전이 지정된 데이터베이스 변경입니다. AI 모델은 응답하는 엔진입니다. 모델 카탈로그는 서버의 사용 가능한 모델 ID 및 가격 목록입니다. 공급자는 AI, 이메일, 청구 서비스와 같은 외부 서비스입니다. 자격은 작업 영역에서 기능을 사용할 수 있도록 하는 부여입니다. 웹훅은 한 서비스가 다른 서비스의 URL에 보내는 메시지입니다.
1. 로컬 지점에서 코딩 에이전트에게 apps/desktop/src-tauri/tauri.conf.json를 검사하고 제품 식별자, 앱 이름, 아이콘 및 백엔드 URL를 자신이 소유한 값으로 설정하도록 요청합니다. 릴리스 빌드에는 공개 HTTPS 백엔드 URL를 사용하세요.
2. 리포지토리 루트에서 아래 데스크탑 패키지 검사를 실행합니다. check:release-config 전에 데스크탑 로컬 설정에서 운영 체제 명령을 사용하여 이 터미널에서 SUPASTACK_APP_URL를 설정하십시오. 공개 HTTPS 백엔드가 실행 중이어야 하며 앱 식별자는 사용자 고유의 것이어야 합니다.
3. 성공적인 빌드는 설치 프로그램에 서명, 공증 또는 게시하지 않습니다. Rust 또는 시스템 라이브러리가 누락된 경우 데스크톱 로컬 설정을 완료하세요.
사용자 정의 코드의 경우 제공된 prompts/README.md로 시작하고 가장 가까운 프롬프트(앱 화면의 경우 prompts/new-app-screen.md, 공개 페이지의 경우 prompts/new-landing-page.md)를 복사합니다. 서버, 데이터베이스 또는 공급자 작업의 경우 코딩 에이전트에게 이 가이드의 작업을 제공하고 AGENTS.md, .ai/PROJECT_CONTEXT.md 및 일치하는 .ai/ 미러를 읽도록 요청하세요. 여기에 이름이 지정된 정확한 소스 파일을 검사하십시오. 편집하기 전에 파일을 나열하고 확인합니다. 작업 공간 소유권과 서버 전용 비밀을 보존합니다. 차이점을 보여주세요. 원하는 동작, 입력 및 출력 필드, 허용된 역할, 예상되는 성공 및 오류, 테스트 계정, 공급자 또는 장치를 알려주십시오. 샘플 값을 사용하십시오. 절대 진짜 비밀을 붙여넣지 마세요.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build제품 셸 구성
src-tauri/tauri.conf.json, Cargo 메타데이터, 기능 및 플랫폼 식별자를 검토합니다. 공유 자산 프로세스를 통해 앱 아이콘을 교체하고 빌드/런타임 시 의도한 백엔드 URL를 설정합니다. 호스팅된 웹앱은 이미 배포되어 연결 가능해야 합니다.
네이티브 빌드 게이트 실행
이러한 패키지 명령은 Rust 유형 검사 및 테스트를 실행하고, 릴리스 설정을 검증하고, Tauri 설치 프로그램을 빌드합니다. 서명 및 배포 구성은 대상 플랫폼과 계정/인증서에 따라 다릅니다. 서명 자료를 소스에 저장하지 마십시오.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build대상 OS에서 설치 프로그램을 확인합니다.
새로 설치, 실행, 백엔드 연결 가능성, 인증, 메뉴/트레이, 단축키 등록, 두 번째 인스턴스, 딥 링크, 오프라인 재시도 및 제거를 확인하세요. 지원되는 각 OS를 별도로 확인하세요. 로컬 빌드는 서명 또는 공증된 상업용 배포를 증명하지 않습니다. 서명 구성, 업데이터 피드 및 릴리스 자동화는 포함되지 않습니다.
설치 및 설정
1. 서명되지 않은 인스톨러는 본인 기기에는 잘 설치되지만 다른 모든 사람에게는 Gatekeeper와 SmartScreen 경고를 띄웁니다 — 출시 전에 서명하세요.
2. macOS에서는 Apple Developer Program에 가입해 Developer ID 인증서를 받은 뒤 src-tauri/tauri.conf.json의 bundle 섹션 아래에 서명·공증 구성을 추가하고, Tauri의 문서화된 서명 env(APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_SIGNING_IDENTITY, 그리고 APPLE_API_KEY / APPLE_API_ISSUER 공증 자격 증명)를 CI 시크릿 스토어에서 공급하세요.
3. Windows에서는 번들의 Windows 서명 — 인증서 지문 또는 커스텀 signtool 명령 — 을 구성하고, 인증서는 러너의 시크릿 스토어를 통해 전달하세요.
# tauri.conf.json ships unsigned today:
# "bundle": { "active": true, "targets": "all", "icon": [...] }
# Add signing under bundle > macOS / bundle > windows
# and keep every certificate and password in your secret store,
# never in the repo.
# Auto-updater & release channels (stable / beta via {{channel}}):
# SUPASTACK_UPDATER_ENDPOINT=https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}
# SUPASTACK_UPDATER_PUBKEY=…
# SUPASTACK_UPDATE_CHANNEL=stable구현 워크플로
인증서는 자체 시크릿 스토어로 프로비저닝하고 빌드 시 환경 변수로 주입하세요 — 리포지토리에 커밋된 인증서는 폐기할 인증서입니다.
같은 릴리스 빌드에 프로덕션 SUPASTACK_APP_URL을 구워 넣어 설치된 셸이 배포된 앱을 가리키게 하세요.
검증 및 문제 해결
본인 것이 아닌 기기에 만들어진 아티팩트를 설치해 검증하세요: Gatekeeper나 SmartScreen 경고 없이 앱이 실행되고 로그인이 유지되어야 합니다. 서명 설치 테스트 없는 녹색 tauri build는 릴리스 증거가 아닙니다.
다음: Web 탭의 배포 체크리스트가 서버 측 출시 게이트를 다룹니다.