EAS Build ile React Native uygulamasını derleyip mağazaya gönderme
Beceri rehberi

EAS Build ile React Native uygulamasını derleyip mağazaya gönderme

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

React Native projesini EAS Build ile bulutta derleme, build profilleri, imzalama ve mağazaya gönderme adımlarını kısa komutlarla öğrenin.

EAS Build ne işe yarar?

EAS Build, Expo'nun sunduğu bulut tabanlı derleme hizmetidir. Android ve iOS paketlerini kendi bilgisayarınızda Android Studio ya da Xcode kurup uğraşmadan, uzak bir derleme ortamında üretirsiniz. Özellikle iOS paketini Mac olmayan bir makineden almak isteyen ekipler için pratik bir yoldur, çünkü iOS derlemesi Apple'ın araçlarına bağlıdır ve bu iş bulutta yapılır.

Hizmetin yan değeri tekrarlanabilirliktir. Derleme herkesin bilgisayarında farklı çıkabilecek yerel kurulumlara bağlı olmaz; Node ve Xcode gibi araç sürümleri eas.json dosyasında belirtilebilir. Böylece aynı commit, ekipteki herkes için aynı paketi üretir ve "bende çalışıyordu" tartışması azalır.

Kurulum: hesap, CLI ve proje yapılandırması

Başlangıç noktası komut satırı aracıdır. Resmî dokümana göre eas-cli global olarak kurulur, ardından Expo hesabınıza giriş yapılır ve oturum doğrulanır:

  • npm install --global eas-cli
  • eas login
  • eas whoami
  • eas build:configure

Son komut projeye eas.json yapılandırma dosyasını ekler. Mağaza yayını planlıyorsanız Apple Developer Program üyeliği ve Google Play geliştirici hesabı gerekir; bu üyeliklerin güncel koşullarını ilgili mağazaların sitelerinden kontrol edin.

Geliştirme sırasında cihaz üzerinde hızlı deneme için expo-dev-client paketini projeye eklemek önerilir. Bu paket, Expo Go'nun sınırlarını aşan yerel modüller kullandığınızda kendi geliştirme istemcinizi derlemenizi sağlar.

eas.json ve build profilleri nasıl düşünülür?

Yapılandırma dosyasının mantığı "profil" kavramıdır: aynı proje farklı amaçlarla farklı ayarlarla derlenir. Profil adları ve içeriği sizin tanımınızdır; ekiplerde sık görülen düzen amaca göre ayrılır. Geliştirme profili geliştirme istemcisini içerir ve dahili dağıtım içindir. Önizleme profili testçilere ve paydaşlara göndermek içindir. Üretim profili ise mağazaya gidecek paketi üretir.

Bu ayrımın pratik faydası şudur: testçiye giden paketle mağazaya giden paketin aynı kodu farklı ortam değişkenleriyle derlemesi gerekebilir. Örneğin test ortamı API adresine, üretim ise gerçek API adresine bağlanır. Her profile uygun ortam değişkenini tanımlamak, yanlış sunucuya bağlı bir paketin mağazaya gitmesini önleyen en basit güvenlik önlemidir.

Profil alanlarının tam listesi sürümlere göre değişebildiği için ayrıntıyı Expo'nun eas.json belgesinden okuyun.

Adım adım ilk derleme ve imzalama

Yapılandırma hazır olduğunda platform seçerek derleme başlatılır:

  • eas build --platform android
  • eas build --platform ios
  • eas build --platform all

Komut, projeyi derleme sunucusuna gönderir. Profil belirtmezseniz varsayılan profil kullanılır; belirli bir profil için komuta profil adı verilir. Sürecin ilerleyişini terminalden ya da Expo panelinden izlersiniz, geçmiş derlemeleri eas build:list ile listelersiniz. Derleme notu bırakmak isterseniz komuta --message ile kısa bir açıklama eklenebilir; birkaç ay sonra hangi paketin neyi içerdiğini hatırlamak için işe yarar.

İlk iOS derlemesinde EAS, sertifika ve provisioning profile gibi imzalama bilgilerini sizin adınıza oluşturmayı ve saklamayı önerir. Android tarafında da anahtar deposu (keystore) benzer şekilde yönetilir. İlk seferde bu önerileri kabul etmek çoğu ekip için en az sürtünmeli yoldur.

Uygulama imzası, mağazada güncellemelerin aynı uygulamaya ait olduğunu kanıtlayan kimliktir. Android'de kayıp bir anahtar deposu, mevcut uygulamayı güncelleyememek anlamına gelebilir. Bu yüzden imzalama bilgilerinin nerede durduğunu bilmek, ekipte en az iki kişinin erişimi olması ve bir yedeğinin bulunması gerekir.

EAS'in kimlik bilgilerini sizin yerinize tutması bu riski azaltır, ancak sorumluluğu ortadan kaldırmaz. Proje sahibi hesabının tek bir kişisel e-postaya bağlı kalması sık görülen bir hatadır; kişi ayrıldığında erişim sorunu çıkar. Mümkünse hesabı kurumsal bir organizasyona bağlayın.

Mağazaya gönderme: EAS Submit

Üretim paketi hazır olunca gönderme adımı EAS Submit ile yapılır. Expo belgesi bu adımı mağaza gönderim rehberinde ayrı anlatır; komut genel olarak derlenmiş paketi Google Play ya da App Store Connect tarafına iletir. Gönderim, yayının kendisi değildir. Paket mağaza konsoluna ulaştıktan sonra uygulama bilgileri, ekran görüntüleri, gizlilik beyanları ve inceleme süreci mağazanın kendi arayüzünde tamamlanır.

Bu yüzden gönderimden önce kontrol listesi çıkarmak iyi bir alışkanlıktır: uygulama kimliği (bundle identifier ya da paket adı) doğru mu, sürüm numarası bir önceki yayından büyük mü, üretim API adresi tanımlı mı, test amaçlı giriş bilgileri kodda kalmış mı?

Ekipte düzenli yayın akışı kurmak

Tek kişilik projede komutu elle çalıştırmak yeterlidir; ekipte ise akış yazılı hale gelmelidir. Yaygın düzen şöyle işler: geliştirici değişikliği ana dala birleştirir, önizleme profiliyle bir paket alınır, testçiler bu paketi dener, onaylanırsa aynı kod üretim profiliyle derlenir ve mağazaya gönderilir. Aynı commit'ten üretim paketi alınması, test edilenle yayınlananın aynı olmasını sağlar.

Derlemeyi sürekli entegrasyon aracından tetiklemek de mümkündür; komut satırı aracı etkileşimsiz çalışacak şekilde kullanılabilir. Böyle bir otomasyon kurarken erişim jetonunu kodun içine değil, aracın gizli değişken alanına koyun.

Sürüm numaralandırması da yazılı bir kuralla yönetilmelidir: kullanıcıya görünen sürüm ile mağazanın derleme numarası ayrı kavramlardır. Her mağaza gönderimi için derleme numarasının artması gerekir; bu artışı elle yapmak yerine yapılandırma aracılığıyla otomatikleştirmek unutma riskini ortadan kaldırır. Yayın sonrasında ilk günlerde çökme ve hata raporlarını izleyen bir kişinin belirlenmesi de akışın parçasıdır.

Sık yapılan hatalar

  • Üretim ve önizleme profillerinin aynı ortam değişkenlerini kullanması; test paketi gerçek veriye bağlanır.
  • Sürüm ve derleme numarasını artırmayı unutmak; mağaza aynı numarayla ikinci yüklemeyi reddeder.
  • Yerel modül ekleyip yalnızca Expo Go ile test etmek; bu durumda geliştirme istemcisi derlenmelidir.
  • Anahtar deposunu tek bir kişinin bilgisayarında tutmak.
  • Derleme hatasını yalnızca "bulut hatası" saymak; derleme günlüğünü okumak çoğu zaman bağımlılık ya da yapılandırma sorununu gösterir.

Hata alan derlemede önce yerel ortamda aynı bağımlılıklarla projenin çalıştığını doğrulayın, sonra günlükte ilk gerçek hata satırını bulun. Zincirleme hata mesajlarının sonundaki satıra değil, ilk kırmızı satıra bakmak zamanı kısaltır.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

React Native ile Cross-Platform Mobil programının son modülü Test, EAS Build ve Mağaza Yayını başlığını taşır; mobil geliştirici olmaya yönelenler ya da web ekibinden mobile geçen frontend geliştiriciler için üretim sürecini kapatan halkadır. Aynı programda Performans Optimizasyonu ve Sorun Giderme modülü de yer alır, yayın öncesi kontrol için tamamlayıcıdır.

Sürüm yönetimi ve dağıtım tarafını daha derin çalışmak isteyen ekipler için React Native İleri Seviye ve Yerel Modül Geliştirme programında Test, Dağıtım ve Sürüm Yönetimi modülü bulunur. Kurumsal ekipler bu içeriği ortak bir yayın süreci tanımlamak için kullanabilir.

İlgili Mindset programı

React Native ile Cross-Platform Mobil

Sık sorulanlar

Sık sorulan sorular

EAS Build ücretsiz mi, hangi planlar var?

Plan koşulları ve derleme kotaları Expo tarafından zaman zaman güncellenir. Güncel kapsamı ve sınırları Expo'nun resmî fiyatlandırma sayfasından kontrol edin. Küçük bir projeyle denemek, kendi kullanım düzeninize uyup uymadığını görmenin en güvenli yoludur.

Mac olmadan iOS paketi alabilir miyim?

Derleme bulutta yapıldığı için paketi Mac olmayan bir makineden başlatabilirsiniz. Ancak Apple Developer Program üyeliği gerekir ve mağaza gönderiminde Apple'ın kendi süreçleri geçerlidir. İmzalama bilgilerini EAS'in yönetmesi bu işi kolaylaştırır.

Expo kullanmayan düz bir React Native projesi EAS ile derlenir mi?

EAS Build, Expo'ya özgü olmayan projeleri de destekleyecek şekilde tasarlanmıştır; yine de proje yapısına göre ek ayar gerekebilir. Kendi projenizin durumuna göre Expo belgesindeki ilgili bölümü okuyun ve önce önizleme profiliyle deneyin.

Derleme başarısız olursa ilk neye bakmalıyım?

Derleme günlüğünde ilk gerçek hata satırını bulun. Sık nedenler bağımlılık sürüm uyuşmazlığı, eksik ortam değişkeni ve imzalama bilgisi sorunlarıdır. Aynı bağımlılıklarla yerel çalıştırmanın sorunsuz olduğunu doğrulamak, sorunun projede mi yapılandırmada mı olduğunu ayırır.

Testçilere mağazaya çıkmadan paketi nasıl gönderirim?

Önizleme amaçlı bir profil tanımlayıp dahili dağıtım için derleme alabilirsiniz. Testçiler paketi bağlantı üzerinden kurar. Böylece mağaza incelemesini beklemeden paydaşlardan geri bildirim toplarsınız. Testçi cihazlarının kayıt gereksinimi platforma göre değişir, bu nedenle iOS testçileri için cihaz tanımlama sürecini baştan planlayın.

EAS Build ile React Native Uygulaması Yayınlama