| Инструмент | Версия | Установка |
|---|---|---|
| Flutter SDK | ≥ 3.2 | brew install --cask flutter |
| Dart SDK | ≥ 3.2 (идёт с Flutter) | — |
| Xcode | ≥ 15 (для iOS) | App Store |
| CocoaPods | ≥ 1.14 | brew install cocoapods |
| Android Studio | ≥ 2023 (для Android) | https://developer.android.com |
| Git | любая | brew install git |
# 1. Клонировать репозиторий
git clone git@gitlab.com:stageplus/mobile_app/flutter-app.git
cd flutter-app
# 2. Установить зависимости
flutter pub get
# 3. Проверить окружение
flutter doctor
# 4. Запустить
flutter run # подключённое устройство/эмулятор
flutter run -d chrome # веб
flutter run -d "iPhone 17 Pro" # конкретный iOS-симулятор
lib/
├── main.dart # Точка входа
├── app.dart # MaterialApp + GoRouter
├── core/
│ ├── constants/ # API URL, роуты
│ ├── di/ # GetIt (service locator)
│ ├── network/ # ApiClient (Dio), WsClient (WebSocket)
│ ├── storage/ # SecureStorage (JWT токены)
│ ├── theme/ # Цвета, стили, тема (брендбук)
│ └── utils/ # Форматтер телефона и др.
├── features/
│ ├── auth/ # Авторизация (OTP + менеджер логин)
│ ├── chat/ # Чаты и сообщения (WebSocket)
│ ├── catalog/ # Каталог авто + фильтры
│ ├── orders/ # Заказы + таймлайн статусов
│ ├── home/ # Главный экран (bottom nav)
│ └── profile/ # Профиль + курсы валют
Файл: lib/core/constants/api_constants.dart
static const baseUrl = 'https://mapp-stage.miniapp.zubat.ru/api/v1';
static const wsUrl = 'wss://mapp-stage.miniapp.zubat.ru/api/v1/ws/chat';
Для продакшена — поменять на mapp.stage-plus.ru.
Файл: lib/core/theme/app_colors.dart — все цвета по брендбуку:
#111111#960018 (Stage+ red)flutter run -d "iPhone 17 Pro"
# 1. Открыть в Xcode для настройки подписи
open ios/Runner.xcworkspace
# 2. В Xcode:
# - Targets → Runner → Signing & Capabilities
# - Выбрать Team (Apple Developer Account)
# - Задать Bundle Identifier (com.stageplus.app)
# 3. Собрать
flutter build ios --release
# 4. Архив для App Store
flutter build ipa
Файл .ipa будет в build/ios/ipa/.
# Собрать и загрузить
flutter build ipa
# Открыть в Transporter или Xcode → Distribute App
flutter run -d emulator-5554 # эмулятор
flutter run -d <device-id> # физическое устройство (USB debug)
flutter build apk --release
# Результат: build/app/outputs/flutter-apk/app-release.apk
flutter build appbundle --release
# Результат: build/app/outputs/bundle/release/app-release.aab
Создать android/key.properties:
storePassword=<пароль>
keyPassword=<пароль>
keyAlias=stageplus
storeFile=<путь>/stageplus-keystore.jks
Сгенерировать keystore:
keytool -genkey -v -keystore stageplus-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias stageplus
⚠️ Keystore не коммитить в git! Хранить отдельно, бэкапить.
flutter build web --release
# Результат: build/web/
Для деплоя — положить содержимое build/web/ в nginx.
Добавить файл assets/icon/app_icon.png (1024×1024), затем:
# pubspec.yaml
dev_dependencies:
flutter_launcher_icons: ^0.13.1
flutter_launcher_icons:
android: true
ios: true
image_path: "assets/icon/app_icon.png"
dart run flutter_launcher_icons
# pubspec.yaml
dev_dependencies:
flutter_native_splash: ^2.3.8
flutter_native_splash:
color: "#111111"
image: "assets/icon/splash_logo.png"
android: true
ios: true
dart run flutter_native_splash:create
# Анализ кода (линтер)
dart analyze
# Форматирование
dart format lib/
# Обновить зависимости
flutter pub upgrade
# Очистить кэш сборки
flutter clean && flutter pub get
# Список устройств
flutter devices
# Список симуляторов
xcrun simctl list devices available
# Запустить симулятор
open -a Simulator
Пока сборка выполняется локально. Для автоматизации:
# .gitlab-ci.yml (пример для Android)
build_android:
image: cirrusci/flutter:latest
script:
- flutter pub get
- flutter build apk --release
artifacts:
paths:
- build/app/outputs/flutter-apk/app-release.apk
iOS сборка требует macOS runner (Mac Mini можно использовать как GitLab Runner).
| Роль | Телефон | Вход |
|---|---|---|
| Менеджер | +7 (914) 888-50-01 | Пароль: Stage2026! |
| Клиент | +7 (900) 123-45-67 | OTP (см. логи бэкенда) |
OTP из логов:
ssh root@109.237.108.200 "docker logs stageplus-backend-api-1 --tail 50" | grep OTP
CocoaPods not foundbrew install cocoapods
cd ios && pod install
Xcode build failed — подписьОткрыть ios/Runner.xcworkspace → Signing & Capabilities → выбрать Team.
flutter clean
flutter pub get
cd ios && pod install --repo-update
Убедиться что flutter run запущен (не flutter build). Нажать r в терминале.
Последнее обновление: 2026-02-11