- 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
247 lines
6.3 KiB
Markdown
247 lines
6.3 KiB
Markdown
# 🎯 Тестирование обновлений в эмуляторе
|
||
|
||
## Как проверить систему обновлений
|
||
|
||
### Подготовка (разовая настройка)
|
||
|
||
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
|
||
```
|
||
|
||
---
|
||
|
||
**✅ Готово! Теперь вы можете полностью протестировать систему обновлений!**
|