# GoldenChart Mobile App Capacitor + React hybrid app for virtual trading, strategy editor, notifications, and settings. ## Setup ```bash # From repo root npm install npm run dev:app ``` ## Native build ```bash npm run build:app npm run cap:sync npm run cap:android # or cap:ios ``` ## exdev.co.kr APK 배포 소스는 `git push origin main` (Jenkins). APK만 로컬 빌드 후 업로드: ```bash ./scripts/upload-android-apk.sh --build --version 1.0.0 ``` `app/.env` 예: `VITE_API_BASE_URL=https://stock.exdev.co.kr/api` 자세한 내용: [`data/mobile-releases/README.md`](../data/mobile-releases/README.md) ## Environment Copy `.env.example` to `.env` and set `VITE_API_BASE_URL`. ### 로그인 시 "Failed to fetch" / "서버 응답이 느립니다" - API는 **`https://stock.exdev.co.kr/api`** 만 사용 (`https://stock.exdev.co.kr` 은 443 미개방). - exdev 로그인은 **10~30초** 걸릴 수 있음 — 2분 타임아웃까지 대기. - APK는 `app/.env`의 `VITE_API_BASE_URL`이 빌드에 포함되어야 함. - `androidScheme`은 **`http`**. `CapacitorHttp`는 비활성(로그인 fetch 안정화). - 설정에 `localhost`·`https://` API가 저장돼 있으면 앱 시작 시 제거·`http`로 교정. ## FCM (Firebase) - Android: `app/android/app/google-services.json` — [FCM_SETUP.md](android/FCM_SETUP.md) 참고 goldenApp(`goldenanalysisapp`)과 동일 프로젝트, 패키지 `com.goldenchart.app` 등록 필요 - 설정: `./scripts/setup-android-fcm.sh [다운로드한 json 경로]` - iOS: `ios/App/GoogleService-Info.plist` + Push Notifications capability - Backend: `FIREBASE_ENABLED=true` + `firebase-service-account.json` - 앱: 로그인 후 설정에서 **FCM 푸시** ON + 알림 권한 허용 ## Structure - `src/screens/` — mobile UI (virtual, strategy, notifications, settings) - `../packages/shared/` — API client + Capacitor storage - `../frontend/src/` — shared business logic (hooks, utils) via `@frontend` alias