Proje: OkulUp · Hub: OkulUp — Architecture

Deployment Pipeline

EAS Build Profilleri

development

{ "developmentClient": true, "distribution": "internal", "ios": { "simulator": true } }

Dev client build — Expo Go yerine custom dev client. iOS Simulator’da çalışır.

preview

{ "distribution": "internal", "channel": "preview" }

Internal test dağıtımı. OTA channel: preview.

production

{ "distribution": "store", "channel": "production", "autoIncrement": true }

App Store / Play Store. autoIncrement: true — her build’de version otomatik artıyor.

OTA Update (expo-updates)

eas update --branch production --message "..."

Runtime version policy: appVersion — her app versiyonu için ayrı OTA group.

Ne zaman OTA yeterli:

  • Sadece JS/TypeScript değişikliği
  • Asset değişikliği (resim, font)
  • Yeni screen, component

Ne zaman store build gerekli:

  • Yeni native module (Expo plugin)
  • app.json’da native config değişikliği (permissions, entitlements)
  • version artışı (major feature)

iOS Submission Bilgileri

  • Apple ID: furkan.namli@okulcom.appleaccount.com
  • Team ID: 6V3NA34W6J
  • ASC App ID: 6761079786
  • Bundle ID: com.okul.kampus

Android Submission

  • Package: com.okul.kampus
  • Track: internal (Play Store internal testing)

EAS Account

Owner: namlifurkan1 (dikkat: furkannamli değil) EAS Project ID: b27e1120-3435-4688-87be-eafa73a11e28 EAS Update URL: https://u.expo.dev/b27e1120-3435-4688-87be-eafa73a11e28

Commit → Deploy Akışı

  1. git commitgit push origin master
  2. eas update --branch production --message "..." (JS değişikliği için)
  3. Ya da eas build --platform all --profile production (native değişiklik)

Gerekli Env Vars (.env.production)

  • EXPO_PUBLIC_API_URL — backend API base URL
  • EXPO_PUBLIC_ENV=production
  • EXPO_PUBLIC_SENTRY_DSN — Sentry proje DSN
  • EXPO_PUBLIC_POSTHOG_KEY — PostHog API key
  • EXPO_PUBLIC_POSTHOG_HOST — PostHog host
  • EXPO_PUBLIC_REVERB_KEY/HOST/PORT — WebSocket (Laravel Reverb/Pusher)