- number-поля теперь рендерятся как text + inputMode=numeric, чтобы браузер не округлял значения через input type=number - пробелы при вставке в number-поля удаляются - бэкенд нормализует значения number-полей в строку перед сохранением - добавлен хелпер normalizeFieldValueForStorage Closes: искажение расчётного счёта и других длинных числовых полей
3.2 KiB
3.2 KiB
iistwin — Android APK (Expo EAS)
Мобильное приложение для Android, собранное через Expo EAS облачный сервис. Это WebView-обёртка над веб-версией — обновления функционала происходят автоматически при деплое.
Production URL: https://iistwin.ru
Expo проект: https://expo.dev/accounts/iisultanov/projects/iistwin
Настройка EXPO_TOKEN
- Открой https://expo.dev/settings/access-tokens
- Нажми Create token, скопируй значение (~40 символов латиницы)
- В Replit: левая панель → 🔒 Secrets → добавь
EXPO_TOKEN= твой токен
Сборка APK (одна команда)
cd mobile && npm run build
Команда автоматически:
- Генерирует keystore и
credentials.jsonесли их нет - Запускает облачную сборку на серверах Expo (10-20 мин)
APK доступен после сборки: https://expo.dev/accounts/iisultanov/projects/iistwin/builds
Установка APK на Android
- Скачай
.apkс expo.dev → проект → Builds - На Android: Настройки → Безопасность → Установка из неизвестных источников
- Установи APK
Настройка паролей подписи (опционально)
По умолчанию keystore генерируется с паролями по умолчанию. Для кастомных паролей добавь секреты в Replit:
ANDROID_KEYSTORE_PASSWORD— пароль keystoreANDROID_KEY_PASSWORD— пароль ключаANDROID_KEY_ALIAS— алиас ключа (по умолчанию: iistwin)
Обновление приложения
- Изменения UI, форм, функционала — автоматически при деплое, APK переустанавливать не нужно
- Изменения нативного кода (иконка, разрешения) — нужна новая сборка EAS
Безопасность
mobile/credentials/иmobile/credentials.jsonв.gitignore— не попадают в VCS- Файлы создаются динамически через
scripts/setup-android-creds.sh - WebView доступен только для origin:
https://iistwin.ru - Внешние ссылки открываются в браузере устройства
Структура
mobile/
├── App.js # WebView — только production origin, кнопка "назад"
├── app.json # projectId=18e993b2, owner=iisultanov
├── eas.json # preview → buildType: apk
├── credentials.json.example # Шаблон (не коммитится)
├── package.json # npm run build = setup + EAS
└── assets/icon.png
scripts/
├── setup-android-creds.sh # Генерирует keystore и credentials.json
└── eas-build.exp # Expect-скрипт для EAS CLI