Files
forkmessager/client-mobile/scripts/export-updates.js
Халимов Рустам abc491c042 Зачаток мобилки
2026-04-07 17:27:52 +03:00

40 lines
1.9 KiB
JavaScript
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.
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);
}