Зачаток мобилки

This commit is contained in:
Халимов Рустам
2026-04-07 17:27:52 +03:00
parent 02043d4d97
commit abc491c042
32 changed files with 10377 additions and 1175 deletions

View File

@@ -0,0 +1,39 @@
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('🚀 Начинаю экспорт обновления для Self-hosted OTA...');
try {
// 1. Выполняем стандартный экспорт Expo
console.log('📦 Выполняю npx expo export...');
execSync('npx expo export --platform android', { stdio: 'inherit' });
// 2. Путь к папке экспорта
const distDir = path.join(process.cwd(), 'dist');
if (!fs.existsSync(distDir)) {
throw new Error('Папка dist не была создана. Проверьте вывод npx expo export.');
}
// 3. Генерация манифеста (metadata.json) для нашего сервера
// В современных версиях Expo манифесты генерируются автоматически в папке dist/metadata.json
// Но если нам нужен кастомный формат для Nginx, мы можем доработать его здесь.
const metadataPath = path.join(distDir, 'metadata.json');
if (fs.existsSync(metadataPath)) {
console.log('✅ Manifest (metadata.json) найден.');
} else {
console.warn('⚠️ Manifest не найден в dist. Возможно, версия Expo требует ручной генерации.');
}
console.log('\n--- ИНСТРУКЦИЯ ---');
console.log('1. Скопируйте всё содержимое папки /dist на ваш сервер Nginx.');
console.log('2. Убедитесь, что сервер возвращает заголовок "expo-protocol-version: 1".');
console.log('3. Проверьте доступность по адресу из app.json.');
console.log('------------------');
} catch (error) {
console.error('❌ Ошибка при экспорте:', error.message);
process.exit(1);
}

View File

@@ -0,0 +1,9 @@
#!/bin/bash
# Скрипт для подготовки OTA обновления для Self-Hosted сервера
echo "🚀 Экспорт Expo бандла..."
npx expo export --platform android
echo "✅ Экспорт завершен в папку ./dist"
echo "📂 Теперь загрузите содержимое папки ./dist на ваш сервер по адресу, указанному в app.json (updates.url)"
echo "🔗 Убедитесь, что ваш Nginx отдает статику из этой папки и заголовок 'expo-protocol-version: 1' или выше."