mobile은 Android와 iOS 명령에서 사용할 네이티브 앱 정보를 설명합니다. 네이티브 앱 프로젝트에 들어갈 이름, 패키지 ID, 버전 정보를 적는 곳이라고 생각하면 됩니다.
appName: 네이티브 앱 표시 이름입니다. mobile root에서는 모든 target의 기본값이 되고, target 내부에서는 해당 패키지 표시 이름을 override합니다.
appId: com.example.app 같은 네이티브 패키지 식별자입니다. Android는 applicationId/package name으로, iOS는 bundle id로 사용합니다. Firebase Android/iOS 앱 등록도 같은 값을 써야 합니다.
version: 사용자에게 보이는 네이티브 앱 버전입니다. Android versionName과 iOS MARKETING_VERSION에 반영됩니다. target 값은 mobile root 값을 override합니다.
buildNum: 스토어 제출용 빌드 번호입니다. Android versionCode와 iOS CURRENT_PROJECT_VERSION에 반영됩니다. 네이티브 스토어 릴리즈마다 증가시키세요.
targets: 하나의 Akan 앱에서 만드는 이름 있는 모바일 패키지들입니다. 각 target은 basePath, fallback indexPath, 앱 식별 정보 override, permissions, files, assets, deepLinks를 가질 수 있습니다.
target.basePath: 이 네이티브 패키지가 여는 client/basePath입니다. 하나의 Akan 앱에서 고객/관리자/파트너 모바일 앱을 나눌 때 사용합니다. 설정된 route basePath와 맞아야 합니다.
target.indexPath: target의 초기 또는 fallback CSR path입니다. 모바일 시작 경로, 딥링크 stack 복원, back 버튼 fallback에 사용합니다.
target.permissions: devkit이 사용하는 네이티브 권한 힌트입니다. 지원 값은 camera, contacts, location, push입니다. 네이티브에서 usePushNotification을 쓰려면 push를 선언하세요.
target.assets: 앱 루트 기준의 선택적 앱 아이콘/splash 이미지 source path입니다. 네이티브 패키지 브랜딩이 필요할 때 icon과 splash를 사용합니다.
target.files: 네이티브 파일 복사 매핑입니다. key는 생성된 네이티브 프로젝트의 대상 경로이고 value는 앱 기준 source path입니다. google-services.json, GoogleService-Info.plist 같은 네이티브 설정 파일에 사용합니다.
deepLinks: 모바일 target에 사용할 네이티브 URL scheme과 검증된 HTTPS 앱 링크입니다. iOS app link에는 teamId가 필요하고, Android app link에는 릴리즈 검증용 SHA-256 인증서 fingerprint가 필요합니다.
deepLinks.schemes: example:// 같은 커스텀 URL scheme입니다. 단순한 소문자 앱 scheme을 사용하고 다른 앱이 소유한 scheme은 피하세요.
deepLinks.domains: HTTPS app link/universal link 도메인입니다. Akan이 association file을 서빙할 수 있지만, iOS에는 teamId가 필요하고 Android 릴리즈 검증에는 SHA-256 fingerprint가 필요합니다.
deepLinks.ios.teamId: apple-app-site-association에 사용하는 Apple Developer Team ID입니다. 실제 iOS 앱의 universal link에 필요합니다.
deepLinks.android.sha256CertFingerprints: assetlinks.json에 사용하는 서명 인증서 SHA-256 fingerprint입니다. 로컬 테스트에는 debug fingerprint, Play Store 빌드에는 release fingerprint를 사용하세요.
mobile.plugins / android / ios: Capacitor config로 그대로 전달되는 필드입니다. Akan의 상위 설정으로 표현되지 않는 네이티브 플러그인 설정이 필요할 때만 사용하세요.