← notlar · 2026-08-30 · 2 dk okuma · app store
On uygulamadan App Store reddi dersleri
3.1.2, 2.1, 4.3 ve sepet kilidi. Reddin çoğu kodda değil metadata'da yaşanır; her submission'da tek itiraz hakkın var, o yüzden kapıyı gönderimden önce kur.
On uygulama, iki yılda belki otuz gönderim, bir düzine red. Kod hatası olan neredeyse yoktu. Redlerin çoğu metadata, gizlilik metni ve satın alma ekranındaki iki satırdan çıktı. Sık gördüklerim:
3.1.2 (c): faturalanan tutar ve linkler
En pahalı ders. Abonelik satan her ekranda ürün adı, süre, gerçek faturalanan fiyat, otomatik yenileme cümlesi, Kullanım Koşulları ve Gizlilik linkleri olmak zorunda. "Haftada 2,99" gibi hesaplanmış fiyat baskınsa ama faturalanan yıllık tutar küçükse red. LensLoop'ta paywall'da hepsi vardı; ama onboarding'in son adımı da bir satın alma yüzeyiydi ve orada yoktu. Reviewer paywall'a hiç ulaşmadı. Ders: her satın alma yüzeyi ayrı denetlenir; disclosure'ı tek bir paylaşılan bileşene bağla.
2.1: gizlilik metninde eksik bölüm
Wakora'nın fotoğraf eşleştirme görevi Vision'ın yüz API'sini kullanıyor. Apple, politikada ayrı bir "Yüz verisi" bölümü istedi: ne toplanıyor, nerede işleniyor, saklanıyor mu. Cihazda işleniyor ve saklanmıyor olsa bile bunu yazmak gerekiyor.
4.3: benzerlik sinyali
Aynı şablonla iki uygulama çıkarırsan sinyal metadata'dadır: benzer ekran görüntüleri, benzer açıklama. Farklılığı önce mağaza sayfasında göster, sonra kodda.
Sepet kilidi
Review'daki sepette bir IN_REVIEW ürün varsa, o sürüm yeniden gönderilemez; sepeti bozup yeniden kurmak daha da uzatır. Bekle. Reddedilen bir submission sürümü kilitler; önce iptal, sonra yeni submission.
Tek itiraz hakkı
Submission başına bir itiraz. Belirsiz bir reddi tahminle düzeltip yeniden göndermek, itiraz hakkını yakmadan daha hızlıdır. İtirazı, reddin yanlış olduğundan emin olduğun tek duruma sakla.
Kapı
Bunların hepsi bir script'e döndü: gönderimden önce IAP var mı, fiyat 175 ülkede mi, her locale'de gizlilik URL'i var mı, gizlilik etiketi yayınlanmış mı, screenshot setleri tam mı. Kapıdan geçmeyen sürüm gönderilmiyor. Son beş gönderimin beşi tek turda geçti.