Mobil uygulamalarda küçük bir düzeltme için bile mağaza onayı beklemek geliştirme hızını yavaşlatır. Expo Updates, JavaScript ve asset değişikliklerini OTA (Over-the-Air) olarak yayınlamaya olanak tanır; kullanıcı düzeltmeyi bir sonraki açılışta, yeni bir build kurmadan alır.

Doğru kullanıldığında yayın döngüsünü günlerden dakikalara indirir. Dikkatsiz kullanıldığında bozuk bir bundle’ı tüm kullanıcılara aynı anda gönderebilir — bu yüzden akış önemlidir.

OTA güncellemenin yapabildiği ve yapamadığı

Expo Updates, JavaScript bundle’ını ve statik dosyaları native binary’den bağımsız dağıtır. Bu, günlük değişikliklerin çoğunu kapsar: arayüz düzeltmeleri, mantık değişiklikleri, metin güncellemeleri.

Yapamadığı ise native olan her şeydir — native kod içeren yeni bir expo install paketi, izin değişikliği veya SDK yükseltmesi. Bunlar yeni bir mağaza build’i gerektirir.

Güncelleme yayınlamak tek komuttur:

eas update --branch production --message "Ödeme doğrulamasını düzelt"

Uyumluluk için runtime version kullanın

Yeni native koda göre yazılmış bir JavaScript bundle’ı, eski bir binary’de çöker. Runtime version bunu önler — bir güncelleme yalnızca eşleşen runtime’a sahip build’lere ulaşır:

// app.json
{
  "expo": {
    "runtimeVersion": { "policy": "appVersion" },
    "updates": { "url": "https://u.expo.dev/your-project-id" }
  }
}

Native kod eklediğinizde runtime version’ı artırın. Eski istemciler çökmek yerine uyumsuz güncellemeleri almayı durdurur.

Kademeli dağıtın ve çökmeleri izleyin

Güncellemeyi tek seferde tüm kullanıcılara göndermeyin. Branch ve channel kullanarak önce bir alt gruba yayınlayın, çökme raporlarını (örn. Sentry) izleyin, sonra terfi ettirin:

# test edilmiş güncellemeyi staging'den production'a terfi ettir
eas update --branch staging --message "Aday sürüm"
eas channel:edit production --branch staging

Bir sorun olursa önceki bundle’ı yeniden yayınlayın — geri alma da yalnızca başka bir güncellemedir.

Sonuç

Expo Updates, ekosistemin en güçlü özelliklerinden biridir. Uyumluluk için runtime version ve güvenlik için kademeli dağıtımla birlikte kullanıldığında; kullanıcılarınıza ne ulaşacağı üzerindeki kontrolü kaybetmeden daha hızlı mobil yayınlar yapmanızı sağlar.