App Store Connect’te “Rejected” mail’i gelmek her iOS developer’ın en sevmediği andır. 3 gün daha bekleyeceksin, o arada launch planı kayıyor, müşteri soru soruyor. 12 uygulamada 40+ submission yaptım ve birkaç defa reddedildim. Aşağıdakiler en çok karşılaştığım sebepler ve önleme yolları.
1. Guideline 5.1.1, Privacy, Data Collection and Storage
Apple’ın en çok uyguladığı kural. Uygulamanız kullanıcı verisi topluyorsa:
- App Store Connect’te Privacy → App Privacy bölümünü doğru ve eksiksiz doldurun
- Privacy Manifest dosyası (PrivacyInfo.xcprivacy) ekleyin, iOS 17’den sonra zorunlu
- Üçüncü parti SDK’ların (Firebase, Facebook, analytics) hepsinin manifest’ini ekleyin
- Crash reporter kullanıyorsanız “Crash Data” toplamı olarak işaretleyin
En yaygın hata: üçüncü parti bir analytics SDK ekliyorsun ama manifest’inde bu collection’u bildirmiyorsun. Apple review bunu yakalıyor, reddediyor.
Fix: her yeni SDK eklediğinde App Privacy sayfasını güncelle. Xcode 15’te “Privacy Report” feature’ı kullan, build time’da eksik olanı söylüyor.
2. Guideline 4.0, Design, Login gereksinimleri
“Uygulamanın core functionality’si hesap olmadan test edilemiyor” diye reddedilenleri çok gördüm. Apple’ın kuralı net:
Eğer login istiyorsan, ya:
– Sign in with Apple seçeneğini ekle (zorunlu, sosyal login varsa)
– Hesap olmadan da temel feature’ları göster (demo mode, guest mode)
– Test hesabı bilgilerini Review Notes’a yaz
Review Notes’ta test account credentials’ı, login flow’u ve kritik feature’lara nasıl erişileceğini adım adım yazıyorum. Ne kadar spesifik olursan o kadar az risk var.
3. Guideline 2.1, Performance, Crashes
Review sırasında app crash ederse, bırak reject’i, tek bir crash bile “bu app için ek inceleme” tetikliyor.
TestFlight’ta crash-free session oranı %99.5 altındaysa submit etmem. Her submission öncesi:
- Xcode Instruments → Allocations, Leaks çalıştır
- TestFlight’a build yükle, en az 2 dış tester 1 hafta kullansın
- App Store Connect’te “Crashes” tab’ını kontrol et, sıfır crash istiyoruz
- Bilinen bug’ları TestFlight notes’a yazma, review’er onları arayıp reproduce etmeye çalışabilir
4. Guideline 3.1.1, In-App Purchase
Eğer uygulamanda dijital içerik/özellik satıyorsan mutlaka IAP kullanmak zorundasın. Stripe, PayPal ile ödeme almaya çalışırsan anında reject.
Ama dikkat edilmesi gereken incelikler:
- “Restore Purchases” butonu her zaman görünür olmalı (Settings ya da Profile sayfasında)
- Premium içerik loading sırasında “Premium content” deme, onun yerine kullanıcıya ne aldığını açıkla
- Üyelik terimleri ve gizlilik politikası uygulama içinden erişilebilir olmalı
5. Guideline 2.3.10, Accurate Metadata
App Store metadata’sı (screenshots, description, keywords) yanıltıcı olamaz. Dikkat et:
- Screenshots app’in gerçek UI’sını göstermeli, mockup veya render’lar kabul edilmez
- Description’da karşılaştırma yapma (“Yayıncılıkta bir numara”)
- Diğer app isimlerini mention etme (“Spotify için alternatif”)
- Keywords listesinde competitor brand’ları kullanma
Bir seferinde “WordPress için” yazmıştım app description’ına, reject yedim çünkü WordPress tescilli marka olduğu için izin gerekiyormuş.
6. Guideline 4.3, Spam / Design Duplication
Apple şuna dikkat ediyor: aynı developer’ın çok sayıda benzer uygulaması varsa “spam” sayabilir.
Ben 12 uygulama yapıyorum ama her biri tamamen farklı: horse racing game, dental tracking, sleep sounds, CV builder. Tema ve target audience’lar ayrı. Eğer 3 tane “meditation app” yapsaydım birinin 4.3 ile reddedilmesi olasıydı.
Fix: eğer benzer app yapıyorsan, her birini farklı developer account’tan yayınla ya da farklı brand altında topla.
7. Review Notes’u ciddiye al
Review Notes alanını çoğu developer atlıyor. Ben her submission’da şunları yazıyorum:
- Test hesabı credentials (2FA’sız)
- En önemli 3 feature’ı test etmek için adım adım flow
- Eğer uygulama backend’e bağlıysa: API’nin hangi sunucuda olduğu, rate limit var mı
- Eğer location/camera/notification kullanıyorsan: kullanım senaryosu
- Kullanılan üçüncü parti SDK’ların listesi
Review’er bu notları okuyor ve test sırasında kullanıyor. Ne kadar detay verirsen review o kadar sorunsuz geçiyor.
8. Zamanlama stratejisi
Cuma günü submit etmeyin. Review team hafta sonu çalışıyor ama cumartesi/pazar rejection alırsan pazartesi’ye kadar hiçbir şey yapamazsın.
Benim stratejim: salı-çarşamba submit. Perşembe’ye kadar sonuç geliyor, reject olduysa cuma düzeltip tekrar submit, pazartesi-salı ikinci review.
9. Rejection geldiğinde ne yapmalı
Bir kez reject olursan, panik yapma:
- Rejection mesajını dikkatli oku, Apple hangi guideline’a referans veriyor?
- Guideline’ı sayfaya gidip oku, genelde örnek veriliyor
- Resolution Center’dan cevap yazabilirsin, eğer mesaj yanlış anlaşıldıysa gerekçeni izah et
- Düzelt, tekrar submit
Bazen review’er hata yapıyor, yanlış karar versa bile nazikçe “şu kısmı tekrar inceleyebilir misin” yazarsan çoğu zaman cevaplıyor.
Sonuç
App Store review uzay bilimi değil ama disiplin gerektiriyor. Her submission öncesi kendi checklist’ime bakıyorum. Bu birkaç madde submit öncesinde işaretlenmişse, %95 ihtimalle ilk turda geçersin.