Proje: Okul B2B App · Hub: Okul B2B App — Conventions
Build ve OTA Update Konvansiyonları
Build Profilleri (eas.json)
| Profil | Distribution | API | Kullanım |
|---|---|---|---|
development | internal | api.okul.com.tr | Dev client, local test |
staging | internal | api.okul.com.tr | Staging test |
preview | internal | api.okul.com.tr | Internal test (APK) |
production | store | api.okul.com.tr | App Store / Play Store |
app-store-review | store | api.okul.com.tr | Apple review submit |
google-play-testing | store | api.okul.com.tr | Play testing track |
ZORUNLU: Build Öncesi İzin Al
git commit → "Bu değişiklikleri commit edeyim mi?"
eas build → "EAS build'ı başlatayım mı?"
eas update → "OTA güncellemeyi göndereceğim, onaylıyor musun?"
Versiyon Yönetimi
app.config.ts IGNORED native dizinler varken! Gerçek versiyonu şuradan oku:
# Android
grep -A1 "versionCode" android/app/build.gradle
# iOS
grep -A1 "CFBundleVersion" ios/Okulcomtr/Info.plistBumping: npm run version:patch / minor / major
OTA Update — Platform Ayrımı ZORUNLU
# YANLIŞ (web desteği yok, hata verir):
eas update --platform all
# DOĞRU:
eas update --platform ios --branch production --message "..." --non-interactive
eas update --platform android --branch production --message "..." --non-interactiveruntimeVersion
OTA update, native build ile aynı runtimeVersion’ı paylaşmalı. app.config.ts’de runtimeVersion: '1.0.1' olarak sabit. Farklı runtimeVersion = OTA crash.
Native Modül Paketleri — Exact Version
Native modül paketleri ^ olmadan exact pin edilmeli:
// YANLIŞ:
"react-native-onesignal": "^5.2.13"
// DOĞRU:
"react-native-onesignal": "5.2.13"Caret OTA sırasında farklı native kod yükleyerek crash’e neden olabilir.
Signing (Android)
- Keystore:
android/app/okulcomtr-release.keystore - Alias:
okulcomtr-key - İlk Google Play upload’ından sonra keystore ASLA değiştirilmez
credentialsSource: "local"(production)
iOS App Store
- Bundle ID:
com.okulcomtr.b2b - Apple ID:
furkan.namli@okulcom.appleaccount.com - ASC App ID:
6756682421 - Team:
6V3NA34W6J
Android Play Store
- Package:
com.okulcomtr.b2b - İki önceki paket suspend edildi (
com.okulcomtr.corporate.dev,com.okulcomtr.kurumsal) - Mevcut
com.okulcomtr.b2baktif ve approved
Force Update (In-App)
MIN_APP_VERSION (_layout.tsx) ile minimum version kontrolü yapılır. Eski build kullanıcıya store’a yönlendirme ekranı gösterilir.
Related
- firebase-native-module-kurali — Firebase modüllerinin OTA ile ilişkisi
- api-client-pattern — API URL yönetimi