TestFlight: iPhone uygulamanı yayından önce test et
Yazan: Mehdi Azizi
tarihinde güncellendi, 8 dk.
İç ve dış test kullanıcıları, beta incelemesi, herkese açık bağlantı, 90 gün geçerli build'ler: TestFlight'ı ve Apple'a göndermeden önceki kontrolleri anlatıyorum.
TestFlight nedir, ne işe yarar?
TestFlight, Apple'ın uygulamanı App Store'da yayınlanmadan önce gerçek iPhone'lara yüklemeni sağlayan hizmeti. App Store Connect'e bir build gönderiyorsun, test kullanıcılarını davet ediyorsun, onlar da uygulamayı App Store'da ücretsiz olan TestFlight uygulamasıyla yüklüyor. İki tür test kullanıcısı var: iç test kullanıcıları, yani ekibinden en fazla 100 kişi, Apple incelemesi olmadan; ve dış test kullanıcıları, e-postayla ya da herkese açık bağlantıyla davet edilen en fazla 10.000 kişi, ilk build'in beta incelemesinden geçtikten sonra. Her build 90 gün boyunca test edilebilir.
| Kriter | İç test kullanıcıları | Dış test kullanıcıları |
|---|---|---|
| En fazla kişi | 100 | 10.000 |
| Hesabına erişim | Evet, bir rolle | Hayır |
| Davet | İç gruba ekleme | E-posta veya herkese açık bağlantı |
| Apple beta incelemesi | Yok | İlk build'de |
| Kimin için | Sen, bir ortak, bir yakın | Arkadaşlar, ilk kullanıcılar |
TestFlight'ı kullanmak için ücretli bir Apple Developer hesabına ihtiyacın var: bu hizmet ücretsiz hesapla kullanılamıyor. Bu rehberin geri kalanı, standart program kapsamında böyle bir hesabın olduğunu varsayıyor: Apple'ın Enterprise programı TestFlight erişimi vermiyor.
Benim uygulamalarımda EAS Submit ile gönderilen her build, incelemeye gitmeden önce TestFlight'tan ve kendi iPhone'umdan geçiyor. Geliştirme sırasında görünmeyen sorunları orada buluyorum.
TestFlight'a build göndermek
Build, uygulamanın derlenmiş ve imzalanmış bir sürümü: imzası hatalıysa Apple onu gönderim sırasında ITMS-90034 ile reddeder. TestFlight'ta görünmesi için App Store Connect'e göndermen gerekiyor. Expo ile bu eas build --platform ios ve ardından eas submit --platform ios demek; ITMS-90725 hatasından kaçınmak için yeterince güncel bir build imajı kullan. Expo dokümantasyonuna göre, build Apple tarafından işlendikten sonra TestFlight'ta görünüyor, genelde 10 ila 15 dakika içinde. Bunların hepsini bir PC'den yapabilirsin: Mac olmadan iOS uygulaması yayınlamak rehberi tüm süreci anlatıyor.
İlk seferde iki detay sık sık işi tıkıyor:
- Build numarası her gönderimde değişmeli. Apple aynı sürüm için aynı numaraya sahip iki build'i reddediyor. EAS'te otomatik artırmayı aç, bir daha aklına gelmesin.
- Şifreleme sorusu. Şifreleme kullanımıyla ilgili soruyu yanıtlamadığın sürece build, Missing Compliance durumunda takılı kalır. Bu soruyu her seferinde App Store Connect'te yanıtlayabilir ya da uygulamanın yapılandırmasında bir kez ve kalıcı olarak beyan edebilirsin.
İç test kullanıcıları: ekibin, beklemeden
İç test kullanıcıları, App Store Connect hesabındaki rol atanmış kullanıcılar. Apple en fazla 100 kişiye izin veriyor ve her biri uygulamayı birden fazla cihaza yükleyebiliyor, en fazla 30 cihaza.
En büyük avantajları: beta incelemesi yok. Build işlenmeyi bitirir bitirmez, ITMS-90717 gibi otomatik bir hata olmadan, onu iç grubuna ekliyorsun ve kullanılabilir hale geliyor. Senin için, hesabına erişim verdiğin bir ortak ya da yakın için doğru grup bu.
Sınırları: onları App Store Connect hesabına kullanıcı olarak eklemen gerekiyor. Tanımadığın kişiler için uygun değil.
Dış test kullanıcıları ve beta incelemesi
Dış test kullanıcılarının hesabına hiçbir erişime ihtiyacı yok. En fazla 10.000 kişi davet edebilirsin, e-postayla ya da herkese açık bağlantıyla. Arkadaşlar, ilk kullanıcılar ya da bir topluluk için doğru grup bu.
Karşılığında Apple, build'i onlara açmadan önce kontrol ediyor. Bir sürümün ilk build'ini dış gruba eklediğinde, build beta incelemesine gidiyor. Aynı sürümün sonraki build'leri her zaman tam bir inceleme gerektirmiyor.
Bu gönderimden önce App Store Connect senden test bilgileri istiyor:
- bir beta açıklaması: test kullanıcılarına neye bakmaları gerektiğini söyler;
- geri bildirimler için bir e-posta adresi;
- iletişim bilgilerin: Apple sana ulaşabilsin diye.
Beta incelemesi App Store incelemesi değildir. TestFlight'ta kabul edilen bir build, yayın aşamasında yine de reddedilebilir.
Beta incelemesi build'in kurallara uyduğunu kontrol eder, ama son inceleme ürün sayfana, aboneliklerine, yasal metinlerine ve tüm deneyime de bakar. Apple bir uygulamayı neden reddeder yazısında anlattığım klasik ret sebeplerini aklında tut.
Herkese açık bağlantıyla test kullanıcısı davet etmek
Herkese açık bağlantı, uygulamanı henüz tanımadığın insanlara test ettirmenin en basit yolu. İşte Apple'ın adımları, arayüz etiketleri İngilizce:
- App Store Connect'te uygulamanı, ardından TestFlight sekmesini aç.
- External Testing altında dış grubunu seç.
- Create Public Link'e tıkla.
- Bağlantıyı herkese açmak için Open to Anyone'ı, belirli cihaz ve iOS sürümleriyle sınırlamak için Filter by Criteria'yı seç.
- İstersen Set Limit ile bir test kullanıcısı sınırı koy.
Sonra bağlantıyı istediğin yerde paylaşırsın: mesaj, sosyal medya, e-posta. Kişi TestFlight uygulamasını yükler, bağlantıyı açar ve daveti kabul eder.
Bağlantıyı geniş çapta yaymadan önce bilmen gereken iki şey:
- Bir sınır koy. Bağlantın beklediğinden fazla yayılırsa test kullanıcısı sayısının kontrolü sende kalır.
- Herkese açık bağlantıyla gelen test kullanıcıları anonimdir. App Store Connect onlar için yalnızca yükleme tarihini, oturumları ve çökmeleri gösterir. Kimin neyi test ettiğini bilmek istiyorsan, e-postayla davet et.
Bir TestFlight build'i ne kadar süre geçerli?
Bir build, test kullanıcıları için 90 gün boyunca kullanılabilir kalır. Bu sürenin sonunda süresi dolar ve test kullanıcıların onu artık açamaz. Betan daha uzun sürecekse, süre dolmadan yeni bir build göndermen yeterli.
Pratikte yeni build'leri çok daha sık göndereceksin: her önemli düzeltmede. Gruba eklenen her yeni build test kullanıcılarına sunulur, onlar da TestFlight uygulamasından alır.
Test kullanıcılarından geri bildirim almak
TestFlight'ın yerleşik bir geri bildirim sistemi var: test kullanıcısı uygulamanda ekran görüntüsü alır, üzerine not ekleyebilir ve sana gönderir. Uygulama çökerse bir çökme raporu alırsın, test kullanıcısı da bağlam ekleyebilir. Hepsini App Store Connect'te bulursun.
İşe yarıyor ama belirli bir çökmeyi anlamak için yetmiyor. Kendi uygulamalarıma, hatayı sorumlu kod satırıyla birlikte raporlayan Sentry'yi ve kullanıcıların nerede bıraktığını gösteren PostHog'u ekliyorum. İkisi de TestFlight build'inde, production'daki gibi çalışıyor.
TestFlight'ta abonelikleri test etmek
Uygulaman abonelik satıyorsa, gerçekten çalıştığını TestFlight'ta doğrularsın. Bir TestFlight build'inde yapılan satın almalar Apple'ın test ortamından geçer: test kullanıcılarından ücret alınmaz. Yenilemeler hızlandırılmıştır: her abonelik, gerçek süresi ne olursa olsun günde bir kez, bir hafta içinde en fazla altı kez yenilenir.
En azından gösterilen fiyatların doğru olduğunu, satın almanın uygulamanın kilidini gerçekten açtığını ve geri yükleme butonunun yeniden yüklemeden sonra aboneliği bulduğunu kontrol et. Uygulamalarımın aboneliklerini yönetmek için RevenueCat kullanıyorum; App Store Connect ürünlerinden paywall'a kadar tüm kurulum iOS uygulama içi abonelikler sayfasında anlatılıyor.
Apple'a göndermeden önce test etmen gerekenler
Her incelemeye gönderimden önce uyguladığım liste bu. Her madde bir ret sebebine ya da önlenebilir bir çökmeye karşılık geliyor.
İlk açılış
- Uygulamayı sil, TestFlight'tan yeniden yükle, aç. Reviewer'ın yapacağı şey bu.
- Onboarding'i baştan sona, hiçbir şeyi atlamadan geç.
- Her izni reddet (bildirimler, kamera, konum) ve uygulamanın çalışmaya devam ettiğini kontrol et.
Para
- Paywall fiyatları, süreyi ve kullanım koşulları ile gizlilik politikası bağlantılarını gösteriyor.
- Satın alma çalışıyor, geri yükleme de.
- Yapılandırılmış tüm ürünler reviewer tarafından görülebiliyor: guideline 2.1, uygulama içi satın almaların eksiksiz, görünür ve çalışır olmasını istiyor.
Zor koşullar
- Uçak modu ve yavaş ağ: boş bir ekran değil, net bir mesaj.
- Desteklediğin en küçük ve en büyük iPhone: hiçbir şey kesilmemiş, hiçbir şey klavyenin altında kalmamış. Solys'te bir ret almama sebep olan şey, küçük iPhone'da kesilen bir ekrandı.
- Uygulaman çevrilmişse uzun metinler.
Reviewer için dosya
- Uygulaman giriş gerektiriyorsa, inceleme notlarında bir demo hesap ve açık bir backend. Guideline 2.1 bunu açıkça istiyor.
- Uygulamanın ne yaptığını ve ana özelliğin nerede olduğunu iki cümleyle anlatan inceleme notları.
Her şeye rağmen uygulaman reddedilirse, Apple tarafından reddedilen uygulama sayfası bir haftanı kaybetmeden nasıl yanıt vereceğini anlatıyor. Ürün sayfasından yayına kadar yayınlama sürecinin genel görünümü için App Store'da uygulama yayınlamak yazısını oku.
Build'in üzerinde doldurman için bir test tablosu
16 senaryoluk tabloyu CSV formatında indir. Hazırlığı, yapılacak işlemi, beklenen sonucu ve gözlenen kanıtı ayrı ayrı gösteriyor. Numbers, Excel ya da Google Sheets'e aktar, sonra her denemenin sürümünü, cihazını ve sonucunu doldur.
Hayali bir okuma günlüğü uygulaması için “bir sayfayı kaydet” yetmez: 24. sayfayı not et, uygulamayı tamamen kapat, yeniden aç ve değeri tekrar bul. Çalıştırılmamış bir test “Test edilecek” olarak kalır. Uygulamanda hiç abonelik yoksa, satın alma senaryoları için bu gerekçeyle birlikte “Uygulanamaz” yaz.
Tablo uyarlanacak bir başlangıç noktası, bir sertifika değil. Reviewer'a gerçekten kontrol ettiğin akışı anlatmak için App Review notlarını ve diğer ücretsiz şablonları da bulabilirsin.
TestFlight'tan App Store'a geçmek
TestFlight, uygulamanın gerçeğe dönüştüğü aşama: gerçek bir iPhone'da, gerçek insanların elinde çalışıyor. iOS Kit yolculuğunda bu ikinci adım: abonelikleri bağlamadan ve yayına hazırlanmadan önce uygulamanın çekirdeğini oluşturmak ve TestFlight ile iPhone'unda test etmek.
TestFlight'tan sonra Apple incelemesi geliyor: Apple Review Kit, gönderim öncesi kontrol listemi ve reviewer için notları bir araya getiriyor. Ana sayfa, Claude Code ile mobil uygulamanı oluşturmanın dört adımını gösteriyor.
Kimse sana Apple'ın uygulamanı kabul edeceğini garanti edemez: kararı Apple veriyor.
Sık sorulan sorular
iPhone uygulaması TestFlight ile nasıl test edilir?
App Store Connect'e bir build gönder, sonra onu bir test kullanıcısı grubuna ekle. Expo ile build'i EAS Build ile derleyip EAS Submit ile gönderiyorsun: Expo'ya göre Apple tarafından işlendikten sonra, genelde 10 ila 15 dakika içinde TestFlight'ta görünüyor. Test kullanıcıların onu App Store'da ücretsiz olan TestFlight uygulamasıyla yüklüyor. Ücretli bir Apple Developer hesabına ihtiyacın var.
Test kullanıcılarını davet etmek için TestFlight bağlantısı nasıl oluşturulur?
App Store Connect'te uygulamanın TestFlight sekmesini aç, External Testing altında grubunu seç ve Create Public Link'e tıkla. Open to Anyone ya da Filter by Criteria'yı seç, sonra Set Limit ile bir sınır koy. Herkese açık bağlantıyla gelen test kullanıcıları anonim kalır: kimin neyi test ettiğini bilmek istiyorsan, onları e-postayla davet et.
TestFlight beta incelemesi App Store incelemesinin yerini tutar mı?
Hayır. Beta incelemesi build'in kurallara uyduğunu kontrol eder, ama son inceleme ürün sayfana, yaş derecelendirmene, aboneliklerine, yasal metinlerine ve tüm deneyime de bakar. Yani TestFlight'ta kabul edilen bir build yayın aşamasında yine de reddedilebilir. Beta incelemesini yalnızca dış test kullanıcıları tetikler, bir sürümün ilk build'inde: iç test kullanıcıları hiçbir incelemeden geçmez.
TestFlight'ta kaç test kullanıcısı davet edilebilir?
En fazla 100 iç ve en fazla 10.000 dış test kullanıcısı davet edebilirsin. İç test kullanıcıları App Store Connect hesabının üyeleridir, beta incelemesi yoktur ve her biri uygulamayı en fazla 30 cihaza yükleyebilir. Dış test kullanıcıları, ilk build'in beta incelemesinden sonra e-postayla ya da herkese açık bağlantıyla davet edilir. Her build 90 gün boyunca test edilebilir.
TestFlight'ta bir abonelik ücret ödemeden test edilebilir mi?
Evet, bir TestFlight build'inde yapılan satın almalar Apple'ın test ortamından geçer: test kullanıcılarından ücret alınmaz. Yenilemeler hızlandırılmıştır: her abonelik, gerçek süresi ne olursa olsun günde bir kez, bir hafta içinde en fazla altı kez yenilenir. En azından gösterilen fiyatları, uygulamanın kilidinin açılmasını ve yeniden yüklemeden sonra geri yüklemeyi kontrol et. Tüm kurulum iOS uygulama içi abonelikler sayfasında anlatılıyor.
Uygulamayı Apple'a göndermeden önce TestFlight'ta neler kontrol edilmeli?
Uygulamayı reviewer'ın yapacağı gibi TestFlight'tan yeniden yükle ve onboarding'i baştan sona geç. Her izni reddet, satın almayı ve geri yüklemeyi test et, sonra uçak modunu, desteklediğin en küçük ve en büyük iPhone'u dene. Uygulama giriş gerektiriyorsa, inceleme notlarında bir demo hesap hazırla ve backend'ini açık tut.