C.W.K.
Stream
Lesson 05 of 07 · published

아이콘 & CI/CD (tauri-action)

~13 min · tauri, icons, ci, github-actions

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"소스 아이콘 하나, 모든 플랫폼의 크기. git 태그 하나, 모든 플랫폼의 설치 파일. 지루하고 실수 잦은 부분을 자동화해."

소스 하나에서 아이콘

모든 플랫폼이 앱 아이콘을 크기랑 포맷 무더기로 원해 — macOS는 .icns, Windows는 .ico, Linux랑 트레이엔 여러 PNG. 이걸 손으로 안 만들어. tauri icon path/to/icon.png가 고해상도 정사각형 소스 하나(1024×1024가 안전한 입력)를 받아 전체 아이콘 세트를 src-tauri/icons/에 생성하고, 설정에 엮어. 로고 바뀔 때마다 재생성해; 개별 크기를 절대 손으로 안 고쳐.

CI가 안 가진 OS용으로 빌드하는 방법이야

각 OS 설치 파일은 그 OS에서 빌드해야 하는 거 기억해. 깔끔한 해법은 CI 매트릭스야: macOS, Windows, Linux 러너 가진 GitHub Actions(나 비슷한), 각자 같은 커밋에서 자기 네이티브 설치 파일을 만들어. 공식 tauri-action이 이걸 감싸 — 각 러너에서 앱을 빌드하고, 모든 설치 파일 붙은 draft GitHub Release를 만들 수 있어, 네가 publish할 준비된. 태그된 커밋 하나가 풀 크로스 플랫폼 릴리스가 돼.

시크릿이 진짜로 만들어

CI 워크플로가 네 서명 신원이랑 updater 키가 암호화 시크릿으로 사는 곳이야, 빌드 타임에 환경 변수로 주입돼. 그게 CI가 자동으로 서명하고, notarize하고, 업데이트 서명하게 해 — '릴리스 내기'를 기계 하나의 깨지기 쉬운 수동 의식에서 재현 가능한 파이프라인으로 바꿔. 필요해 보이기 전에 엮어; 릴리스 압박 속에 CI에 서명을 끼워넣는 건 비참해.

Code

tauri icon: 소스 하나, 모든 크기·bash
# 1024x1024 PNG 하나에서 모든 플랫폼 아이콘 생성.
npm run tauri icon path/to/app-icon.png
# → src-tauri/icons/ 작성 (.icns, .ico, PNG) + 설정 갱신
tauri-action: 전부 내는 매트릭스·text
# .github/workflows/release.yml (스케치) — 태그 하나로 모든 OS에서 빌드.
strategy:
  matrix:
    platform: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
  - uses: actions/checkout@v4
  - uses: tauri-apps/tauri-action@v0
    env:
      APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
      TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_UPDATER_KEY }}
    with:
      tagName: app-v__VERSION__
      releaseDraft: true       # 모든 설치 파일을 draft 릴리스에 붙임

External links

Exercise

1024x1024 PNG에 tauri icon을 돌리고 src-tauri/icons/에 생성된 전부를 봐. 그다음 (종이나 yml에) 고른 타깃을 빌드할 CI 매트릭스를 스케치하고, 필요한 시크릿(서명 신원, notarization 자격증명, updater 키)을 나열해. 마지막 1마일 자동화를 연결한 거야: 소스 아이콘 하나, 태그 하나, 어디서나 서명된 설치 파일.
Hint
tauri icon이 소스 하나에서 .icns/.ico/PNG를 써. CI 매트릭스는 출시할 OS당 러너가 필요해; 시크릿은 Apple 자격증명이랑 TAURI updater 비공개 키, tauri-action 스텝에 env로 참조.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.