Files
umbrix/update-server/TESTING.md
Umbrix Developer 76a374950f feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
2026-01-17 13:09:20 +03:00

247 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 Тестирование обновлений в эмуляторе
## Как проверить систему обновлений
### Подготовка (разовая настройка)
1. **Запустите эмулятор:**
```bash
flutter emulators --launch UmbrixTest
```
2. **Установите текущую версию:**
```bash
flutter run
```
3. **Настройте тестовый сервер** (выберите один из вариантов):
#### Вариант А: Локальный PHP сервер (проще)
```bash
# Перейдите в папку с сервером
cd update-server
# Запустите встроенный PHP сервер
php -S localhost:8000
# Сервер будет доступен по адресу: http://localhost:8000
```
Затем в `constants.dart` укажите:
```dart
static const customUpdateServerUrl = "http://10.0.2.2:8000/api.php";
// 10.0.2.2 - это localhost для Android эмулятора
static const useCustomUpdateServer = true;
```
#### Вариант Б: Ngrok (если нужен HTTPS)
```bash
# В одном терминале запустите PHP
cd update-server
php -S localhost:8000
# В другом терминале запустите ngrok
ngrok http 8000
# Скопируйте HTTPS URL (например: https://abc123.ngrok.io)
```
Затем в `constants.dart`:
```dart
static const customUpdateServerUrl = "https://abc123.ngrok.io/api.php";
static const useCustomUpdateServer = true;
```
---
### Тестирование обновления
#### 1. Установите старую версию
В `pubspec.yaml` установите версию `2.5.6`:
```yaml
version: 2.5.6+256
```
Пересоберите и установите:
```bash
flutter build apk --release
flutter install
```
#### 2. Настройте сервер на новую версию
Отредактируйте `update-server/latest.json`:
```json
{
"version": "2.5.7",
"build_number": "257",
"download_url": "http://10.0.2.2:8000/downloads/umbrix-2.5.7.apk"
}
```
#### 3. Создайте APK новой версии
Вернитесь к версии `2.5.7` в `pubspec.yaml`:
```yaml
version: 2.5.7+257
```
Соберите APK:
```bash
flutter build apk --release
```
Скопируйте APK в папку downloads:
```bash
cp build/app/outputs/flutter-apk/app-release.apk \
update-server/downloads/umbrix-2.5.7.apk
```
#### 4. Проверьте обновление
1. Откройте приложение (версия 2.5.6)
2. Зайдите в **Настройки → О программе**
3. Нажмите **"Проверить обновления"**
4. Должно появиться окно с предложением обновиться до 2.5.7
5. Нажмите **"Обновить сейчас"**
6. Скачается и установится новая версия
---
### Отладка
#### Проверить API в браузере:
```bash
# Если используете локальный сервер
curl http://localhost:8000/api.php
# Должны увидеть JSON:
{
"version": "2.5.7",
"build_number": "257",
...
}
```
#### Проверить из эмулятора:
```bash
# Подключитесь к эмулятору через adb
adb shell
# Проверьте доступность сервера
curl http://10.0.2.2:8000/api.php
```
#### Смотреть логи приложения:
```bash
adb logcat | grep -i "update\|umbrix"
```
---
### Частые проблемы
**Проблема:** "Не удается подключиться к серверу"
**Решение:**
- Используйте `10.0.2.2` вместо `localhost` для эмулятора
- Проверьте, что PHP сервер запущен
- Проверьте firewall
---
**Проблема:** "Обновление не отображается"
**Решение:**
- Убедитесь, что версия в `latest.json` больше текущей
- Проверьте `useCustomUpdateServer = true` в `constants.dart`
- Пересоберите приложение после изменения констант
---
**Проблема:** "Ошибка при скачивании APK"
**Решение:**
- Проверьте, что файл `umbrix-2.5.7.apk` существует в папке `downloads/`
- Проверьте права доступа: `chmod 644 umbrix-2.5.7.apk`
- Убедитесь, что URL правильный
---
### Пример полного цикла тестирования
```bash
# 1. Запустить PHP сервер
cd update-server
php -S localhost:8000 &
# 2. Изменить версию на старую
sed -i 's/version: 2.5.7/version: 2.5.6/' pubspec.yaml
# 3. Установить старую версию
flutter build apk --release
flutter install
# 4. Вернуть новую версию
sed -i 's/version: 2.5.6/version: 2.5.7/' pubspec.yaml
# 5. Собрать новый APK
flutter build apk --release
cp build/app/outputs/flutter-apk/app-release.apk \
update-server/downloads/umbrix-2.5.7.apk
# 6. Проверить API
curl http://localhost:8000/api.php
# 7. Открыть приложение и проверить обновления
```
---
### Готовые команды
Сохраните в `test_update.sh`:
```bash
#!/bin/bash
echo "🚀 Тестирование системы обновлений"
# Запуск PHP сервера
cd update-server
php -S localhost:8000 > /dev/null 2>&1 &
PHP_PID=$!
echo "✅ PHP сервер запущен (PID: $PHP_PID)"
# Ждем запуска
sleep 2
# Проверка API
echo "🔍 Проверка API..."
curl -s http://localhost:8000/api.php | jq .
echo ""
echo "📱 Теперь:"
echo "1. Откройте приложение"
echo "2. Зайдите в Настройки → О программе"
echo "3. Нажмите 'Проверить обновления'"
echo ""
echo "Для остановки сервера: kill $PHP_PID"
```
Сделайте исполняемым и запустите:
```bash
chmod +x test_update.sh
./test_update.sh
```
---
**✅ Готово! Теперь вы можете полностью протестировать систему обновлений!**