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
This commit is contained in:
246
update-server/TESTING.md
Normal file
246
update-server/TESTING.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# 🎯 Тестирование обновлений в эмуляторе
|
||||
|
||||
## Как проверить систему обновлений
|
||||
|
||||
### Подготовка (разовая настройка)
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**✅ Готово! Теперь вы можете полностью протестировать систему обновлений!**
|
||||
Reference in New Issue
Block a user