Skip to content

App Deploy

Веб-застосунок (m.pisd.uk)

Expo Web → Cloudflare Pages (проект pisd-m).

Деплой

bash
cd app

# 1. Переконайся, що DEMO вимкнено
export EXPO_PUBLIC_DEMO=0

# 2. Збудуй веб-версію
npx expo export --platform web

# 3. Задеплой на Cloudflare Pages
CLOUDFLARE_ACCOUNT_ID=137d7ea3d26bd0e5f485cb77f614a7a6 \
  npx wrangler pages deploy dist \
  --project-name pisd-m \
  --branch main

DEMO=0

Завжди встановлюй EXPO_PUBLIC_DEMO=0 перед деплоєм. Інакше застосунок використовує mock-backend і не підключається до реального API.

Cloudflare Pages конфігурація

ПараметрЗначення
Project namepisd-m
Account ID137d7ea3d26bd0e5f485cb77f614a7a6
Build commandnpx expo export --platform web
Output dirdist
Branchmain

Gotcha: Шрифти

Шрифти повинні бути локальними файлами в app/assets/fonts/:

assets/fonts/
  Manrope_400Regular.ttf
  Manrope_500Medium.ttf
  Manrope_600SemiBold.ttf
  Manrope_700Bold.ttf

Підключення в _layout.tsx:

typescript
const [fontsLoaded] = useFonts({
  Manrope_400Regular: require('../assets/fonts/Manrope_400Regular.ttf'),
  // ...
});

DANGER

НЕ використовуй @expo-google-fonts — wrangler пропускає node_modules subdirectories в dist. Шрифти не потраплять до деплою.

OTA-оновлення (Expo Updates)

OTA дозволяє оновлювати JavaScript bundle без нової збірки в App Store.

Поточна версія

runtimeVersion: "1.5.0"   # app.json

Деплой OTA

OTA оновлення деплоюються автоматично при пуші в гілку pisduk (тільки JS-зміни).

Коли потрібна нова збірка EAS

  • Додавання нового native-модуля
  • Зміна runtimeVersion в app.json
  • Зміна app.json (пермішени, scheme, тощо)

OTA не працює між різними runtimeVersion.

Bump runtimeVersion

json
// app.json
{
  "expo": {
    "runtimeVersion": "1.6.0"
  }
}

Після зміни потрібна нова EAS збірка та сабміт.

EAS Build (iOS / Android)

Передумови

bash
npm install -g eas-cli
eas login

Збірка

bash
cd app

# iOS production build
eas build --platform ios --profile production

# Android production build
eas build --platform android --profile production

Сабміт до App Store / Google Play

bash
# Лише після підтвердження від користувача
eas submit --platform ios --latest
eas submit --platform android --latest

DANGER

Ніколи не запускай eas submit автоматично. Спочатку покажи збірку для перевірки.

ASC API Key

iOS збірки використовують ASC API Key (не Apple ID + пароль). Ключ зберігається в EAS Secrets.

bash
# Перегенерувати якщо є проблеми
eas credentials --platform ios

Локальна розробка

bash
cd app
npm install
npx expo start
# i=iOS симулятор  a=Android  w=веб

# Mock режим (без API)
EXPO_PUBLIC_DEMO=1 npx expo start

Peaced — платформа подій