Тема
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 mainDEMO=0
Завжди встановлюй EXPO_PUBLIC_DEMO=0 перед деплоєм. Інакше застосунок використовує mock-backend і не підключається до реального API.
Cloudflare Pages конфігурація
| Параметр | Значення |
|---|---|
| Project name | pisd-m |
| Account ID | 137d7ea3d26bd0e5f485cb77f614a7a6 |
| Build command | npx expo export --platform web |
| Output dir | dist |
| Branch | main |
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 --latestDANGER
Ніколи не запускай 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