"설정 파일은 웹 반쪽이랑 네이티브 반쪽이 맺은 계약서야. 계약서 읽듯이 읽어."
중요한 네 구역
tauri.conf.json은 작아도 하는 일은 커. 최상위 네 구역이 거의 전부를 처리해:
- 신원 —
productName,version,identifier(com.acme.myapp같은 역DNS 문자열). identifier로 OS가 네 앱 데이터 폴더 이름을 짓고 번들에 서명해. build— 프론트엔드를 어떻게 붙일지.beforeDevCommand(dev 서버 띄우기),devUrl(그게 어디 사는지, 이를테면http://localhost:1420),beforeBuildCommand(프로덕션 빌드),frontendDist(Tauri가 실어 보낼 정적 파일 폴더).app— 돌아갈 때의 UI. 처음 뜨는windows배열(크기, 제목, resizable…)이랑security(특히 Content Security Policy).bundle— 패키징. 번들링을active로 둘지, 어떤targets를 만들지(.dmg, .msi, AppImage…),icon세트는 뭔지.
devUrl vs frontendDist: dev/prod 스위치
이 한 쌍에서 누구나 한 번은 헷갈려. dev일 땐 Tauri가 웹뷰를 devUrl 쪽으로 돌려놔 — 핫리로드가 도는 살아 있는 dev 서버. build일 땐 서버가 없어. Tauri가 앱 안에 실어둔 frontendDist의 정적 파일을 읽어. 같은 앱인데 HTML 먹이는 방식이 둘인 거지. dev는 되는데 빌드한 앱만 빈 창이 뜨면, frontendDist가 엉뚱한 폴더를 가리키는 게 흔한 범인이야.
스키마 줄을 켜두면 편해
첫 줄 "$schema": "https://schema.tauri.app/config/2"는 장식이 아냐 — 에디터에 모든 필드의 자동완성이랑 검증을 붙여줘. 에디터에서 키가 빨개지면 오타거나 v2엔 없는 키야. v1 시절에 쓰인 블로그보다 스키마를 믿어.