"모바일 init은 진짜 Xcode랑 Gradle 프로젝트를 만들어내. 네이티브 툴체인에서 벗어나는 게 아냐 — Tauri가 대신 운전대를 잡아주는 거지."
전제조건이 훨씬 무거워
데스크톱 Tauri는 가벼운 도구 몇 개면 되는데, 모바일은 네이티브 스택을 통째로 요구해. iOS엔 Mac이랑, Command Line Tools가 아니라 Xcode 앱 전체랑, CocoaPods랑, iOS용 Rust 타깃이 필요해. Android엔 SDK랑 NDK가 딸린 Android Studio랑, 환경 변수(ANDROID_HOME, NDK_HOME)랑, Android용 Rust 타깃이 필요하고. 타깃은 rustup target add로 넣어. 이 중 뭐 하나라도 빠뜨리는 게 첫 init이나 dev가 실패하는 흔한 이유야.
init이 플랫폼 프로젝트를 만들어
tauri ios init이랑 tauri android init이 (안에서 cargo-mobile2를 써서) 네이티브 프로젝트를 src-tauri/gen/apple이랑 gen/android 아래 만들어. 네 Tauri 앱을 감싸는 진짜 Xcode랑 Gradle 프로젝트야. 보통은 손대지 않지만, 플랫폼별 서명이랑 설정이 사는 곳이기도 해. gen/을 커밋할지(다시 만들 수 있지만 네가 손본 설정이 들어 있어) gitignore 하고 CI에서 다시 만들지, 작정하고 정해둬.
dev가 시뮬레이터나 실제 기기에서 돌아
tauri ios dev랑 tauri android dev가 앱을 빌드해서 시뮬레이터나 에뮬레이터, 또는 연결된 기기에 올려줘. 데스크톱에서 익숙한 그 프론트엔드 핫리로드까지 같이. 이게 네 모바일 개발 루프야. 첫 실행은 느리고(새 타깃을 컴파일하니까) 기기나 시뮬레이터를 고르고 서명 관련 물음에 답해야 할 수도 있어 — 근데 일단 돌기 시작하면 프론트엔드를 고칠 때마다 폰에서 데스크톱처럼 바로 갱신돼.