Apple her yıl App Store Connect'e yüklenen uygulamalar için bir minimum SDK sürümü şartı koyuyor ve bu tarihi kaçıran ekipler build'lerinin reddedilmesiyle karşılaşıyor. 28 Nisan 2026'dan itibaren geçerli olan kural, iOS, iPadOS, tvOS, visionOS ve watchOS uygulamalarının hangi SDK ile derlenmesi gerektiğini net biçimde tanımlıyor. Bu yazıda App Store Xcode SDK zorunluluğu takvimini nasıl takip edeceğini, CI/CD hattında Xcode sürümünü nasıl sabitleyeceğini ve Google Play'in kendi target-SDK takvimiyle bunu tek bir uyum çizelgesinde nasıl birleştireceğini anlatıyorum.
💡 Pro Tip: Xcode sürüm takibini tek bir yerde tutmak istiyorsan, App Store'un SDK zorunluluğu ile Google Play'in target API seviyesi zorunluluğunu aynı takvime (örneğin paylaşımlı bir takım takvimi) işle — ikisi de yılın farklı aylarında yürürlüğe giriyor ve ayrı ayrı takip edilirse biri gözden kaçabiliyor.
İçindekiler
- Zorunluluk nasıl işliyor
- Bugün geçerli minimum ve nasıl kontrol edilir
- Reddedilme senaryoları ve erken yakalama
- CI/CD'de Xcode sürüm sabitleme
- Eski SDK'ya bağımlı üçüncü parti kütüphaneler
- Play target-SDK takvimiyle birlikte tek takvim kurmak
- SSS
- App Store'a yüklemek için hangi Xcode sürümü zorunlu?
- Eski Xcode ile build alırsam reddedilir miyim?
- CI/CD'de Xcode sürümünü nasıl sabitlemeliyim?
- Minimum SDK zorunluluğu her yıl ne zaman değişiyor?
- Güncelleme (Eylül 2026)
- Sonuç
- Kaynaklar
Zorunluluk nasıl işliyor
Apple, App Store Connect'e yüklenen uygulama ve oyunlar için minimum SDK gereksinimlerini Developer News üzerinden duyuruyor. 3 Şubat 2026 tarihli duyuruya göre: "Starting April 28, 2026, apps and games uploaded to App Store Connect need to meet the following minimum requirements." Bu duyuru, o tarihten itibaren geçerli olacak SDK zorunluluğunu dört maddelik bir liste halinde veriyor (iOS ve iPadOS aynı maddede).
Zorunluluk şu şekilde işliyor: Apple yeni büyük işletim sistemi sürümünü (örneğin iOS 26) yayınladıktan belli bir süre sonra, o sürümün SDK'sıyla derlenmiş olmayı App Store Connect'e yükleme şartı haline getiriyor. Duyuru ile yürürlük tarihi arasında geliştiricilere geçiş için birkaç ay tanınıyor. Bu geçiş penceresi, büyük ekiplerin CI altyapısını güncellemesi, regresyon testlerini yeni SDK ile tekrar çalıştırması ve varsa üçüncü parti bağımlılıkların uyumluluğunu doğrulaması için düşünülmüş bir süre; küçük ekipler için bile son haftaya bırakmak riskli, çünkü Xcode güncellemesi sonrası ortaya çıkan derleme uyarıları veya API değişiklikleri genelde ilk denemede değil birkaç iterasyonda çözülüyor.
Apple, bu kuralı kanonik "submitting your app" sayfasına da bağlıyor — yani zorunluluk tek seferlik bir haber duyurusu değil, App Store Connect'e gönderim sürecinin resmi ve sürekli güncellenen bir parçası. Bu sayfayı takip listene eklemek, her yeni dalgayı Developer News'te ayrı ayrı aramak zorunda kalmadan güncel minimum şartı görmeni sağlıyor.
Platform | Zorunlu SDK (28 Nisan 2026'dan itibaren) |
|---|---|
iOS / iPadOS | iOS 26 & iPadOS 26 SDK veya sonrası |
tvOS | tvOS 26 SDK veya sonrası |
visionOS | visionOS 26 SDK veya sonrası |
watchOS | watchOS 26 SDK veya sonrası |
Bu tabloyu App Store Connect'e her yükleme öncesi kontrol listenin başına koyabilirsin; Xcode sürümün bu SDK ailelerinden birini içermiyorsa yükleme reddedilir.
Bugün geçerli minimum ve nasıl kontrol edilir
Pratikte bu kural, Xcode sürümünle ilgili bir şart. 9to5mac'in Apple duyurusunu değerlendirdiği yazıda şöyle deniyor: "In practice, this also means that developers will need to build their apps using Xcode 26 or later." Yani kontrol etmen gereken şey işletim sistemi sürümün değil, projeyi derlediğin Xcode'un hangi SDK ailesini içerdiği.
Terminalden hangi SDK'ların kurulu olduğunu şöyle görebilirsin:
bash
1# Kurulu Xcode sürümünü ve build numarasını göster2xcodebuild -version3 4# Belirli bir platform için kurulu SDK listesini göster5xcodebuild -showsdks | grep -i iosBurada kritik bir ayrımı netleştirmek gerekiyor: bu zorunluluk, uygulamanın hangi SDK ile derlendiğini kapsıyor; uygulamanın çalışacağı minimum iOS sürümünü (deployment target) otomatik olarak yükseltmiyor. 9to5mac'in aktardığı Apple açıklaması net: "this does not mean that apps will automatically require iOS 26 or later to run. This decision will still be up to the developer. This change affects only the SDK version used to build apps." Yani deployment target'ı düşük tutmaya devam edebilirsin, tek şart derleme SDK'sının güncel olması.
Bir yan etkiyi de not etmekte fayda var: iOS 26 SDK ile derlenen uygulamalarda native UI bileşenlerine varsayılan olarak Liquid Glass görünümü uygulanıyor; bunu istemiyorsan UIDesignRequiresCompatibility anahtarıyla devre dışı bırakabilirsin — ayrıntılı adaptasyon rehberi için Liquid Glass ve SwiftUI adaptasyonu yazımıza bakabilirsin.
Reddedilme senaryoları ve erken yakalama
Apple'ın duyurusu şartı yükleme anına bağlıyor: yürürlükteki minimum SDK şartını karşılamayan yüklemeler App Store Connect tarafından kabul edilmiyor. Pratikte bunun en yaygın tetikleyicisi, eski bir Xcode sürümüyle arşiv (archive) almış olmak — CI makinen güncellenmemişse veya yerel geliştirme ortamın hâlâ önceki büyük Xcode sürümündeyse, xcodebuild archive adımı sorunsuz tamamlanabilir ama App Store Connect'e yükleme adımında (Transporter veya xcodebuild -exportArchive + upload) reddedilme yaşarsın.
Bu yüzden reddedilme riskini CI aşamasında, App Store Connect'e hiç göndermeden yakalamak daha ucuz: pipeline'ında bir doğrulama adımı olarak kullanılan Xcode sürümünü zorunlu minimumla karşılaştırıp uyuşmazlıkta build'i orada durdurmak, günler sonra App Store Connect'ten dönen bir reddi beklemekten çok daha hızlı geri bildirim verir.
CI/CD'de Xcode sürüm sabitleme
Xcode sürümünü sabitlemenin en sağlam yolu, projenin köküne bir .xcode-version dosyası koymak ve CI araçlarının bu dosyayı okumasını sağlamak. fastlane'in xcversion action'ı bunu varsayılan davranış olarak destekliyor — resmi dokümantasyon şöyle diyor: "Defaults to the value specified in the .xcode-version file." Ancak dikkat: aynı dokümantasyon, action'ın dayandığı xcode-install gem'inin artık bakımda olmadığını ve xcodes action'ına geçiş önerdiğini de belirtiyor: "The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes."
ruby
1# Fastfile — .xcode-version dosyasını referans alarak Xcode sürümünü seç2lane :build_release do3 xcversion # parametresiz çağrı: sürümü .xcode-version dosyasından okur4 build_app(scheme: "MyApp")5endGitHub Actions'ta macOS hosted runner'ların hangi Xcode sürümlerini içerdiğini GitHub'ın kendi imaj deposundan takip edebilirsin. GitHub Docs bunu şöyle açıklıyor: "GitHub maintains our own set of VM images... The software tools included in our GitHub-owned images are updated weekly." Workflow'unda xcode-select ile doğru sürüme geçiş yapman yeterli:
yaml
1# .github/workflows/build.yml2- name: Select Xcode version3 run: sudo xcode-select -switch /Applications/Xcode_26.app4- name: Build5 run: xcodebuild -scheme MyApp -destination "generic/platform=iOS" archiveCI/CD hattının tamamını nasıl kurduğuna dair adım adım rehber için iOS CI/CD Pipeline: GitHub Actions ve Fastlane yazısına, Xcode Cloud tarafında workflow bazlı sürüm yönetimi için ise Xcode Cloud pipeline optimizasyonu yazısına bakabilirsin.
Yerel geliştirici makinelerinde de aynı disiplin gerekiyor — ekipteki herkesin aynı Xcode sürümüyle arşiv aldığından emin olmak için kurulu Xcode sürümlerini ve varsayılan olarak seçili olanı hızlıca listeleyebilirsin:
bash
1# Kurulu Xcode.app kopyalarını bul2mdfind "kMDItemCFBundleIdentifier == 'com.apple.dt.Xcode'"3 4# Şu anda aktif (xcode-select ile seçili) Xcode'un yolunu göster5xcode-select -pBu iki komutu bir ön-kontrol script'i haline getirip commit hook'una veya CI'ın ilk adımına koymak, "bende çalışıyordu" tipi sürüm uyuşmazlıklarını daha PR açılmadan yakalamanı sağlıyor.
Eski SDK'ya bağımlı üçüncü parti kütüphaneler
Kendi projenin Xcode sürümünü güncellemek yetmiyor — projene eklediğin Swift Package'lar veya CocoaPods bağımlılıkları da güncel toolchain ile derlenebilir olmalı. Bir bağımlılığın kendi CI hattı hâlâ eski bir Xcode sürümüyle test ediliyorsa, sen güncel SDK ile derlemeye geçtiğinde o paket uyarı veya hata üretebilir; bu riski en aza indirmenin yolu bağımlılıkların Package.swift dosyasındaki swift-tools-version değerini ve son commit/release tarihini projeni güncellemeden önce gözden geçirmek.
Özellikle uzun süredir güncellenmeyen (son commit'i bir-iki yıl öncesine dayanan) bağımlılıklar risk taşıyor — bakımcısı yeni SDK ile test etmemiş olabilir. Böyle bir bağımlılığı tespit ettiğinde üç seçeneğin var: bakımcıya bir issue açıp güncel Xcode ile test edilip edilmediğini sormak, kendi fork'unda swift-tools-version'ı güncelleyip yerel olarak test etmek, veya güncel toolchain'i destekleyen alternatif bir pakete geçmek. Hangi yolu seçersen seç, bu kontrolü Xcode zorunluluğu yürürlüğe girmeden haftalar önce yapmak, App Store Connect yükleme adımında sürpriz bir derleme hatasıyla karşılaşma riskini büyük ölçüde azaltıyor.
bash
1# Projedeki tüm SPM bağımlılıklarının swift-tools-version'ını listele2find . -name "Package.swift" -exec grep -H "swift-tools-version" {} \;Bu kontrolü CI'ına bir ön-adım olarak eklemek, güncel Xcode'a geçiş sırasında hangi bağımlılığın seni geride bıraktığını erken görmeni sağlar.
Play target-SDK takvimiyle birlikte tek takvim kurmak
Android tarafında da benzer bir zorunluluk var ve tarihleri farklı. Google Play Console Help'e göre: "New apps and app updates must target Android 16 (API level 36) or higher to be submitted to Google Play" — bu şart 31 Ağustos 2026'dan itibaren geçerli. Aynı sayfada bir esneklik payı da tanımlanıyor: "You will be able to request an extension to November 1, 2026 if you need more time to update your app." Yayında olan mevcut uygulamalar için ise daha düşük bir eşik geçerli: "Existing apps must target Android 15 (API level 35) or higher to remain available to new users on devices running Android OS higher than your app's target API level."
Mağaza | Şart | Yürürlük | Kimi kapsar |
|---|---|---|---|
App Store Connect | iOS/iPadOS/tvOS/visionOS/watchOS 26 SDK | 28 Nisan 2026 | Tüm yeni yükleme ve güncellemeler |
Google Play | target API 36 (Android 16) | 31 Ağustos 2026 (uzatma: 1 Kasım 2026) | Yeni uygulama + güncellemeler |
Google Play | target API 35 (Android 15) | mevcut uygulamalar için asgari | Yayında kalan eski uygulamalar |
Cross-platform ekip yürütüyorsan bu iki takvimi tek bir uyum çizelgesinde birleştirmek mantıklı; iki mağazanın yürürlük tarihleri aynı aya denk gelmiyor (2026'da App Store 28 Nisan, Play 31 Ağustos), bu yüzden tek bir belgede yan yana tutmak ikisinden birini kaçırma riskini azaltıyor. Google Play tarafının detaylı işleyişi ve son tarih stratejisi için Google Play API 36 son tarih rehberi yazımıza bakabilirsin.
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
Bu makaleyi uygulamaya geçirirken atlanan adımlar genelde son ana kadar fark edilmiyor. Aşağıdaki kontrol listesi, hem App Store hem Play tarafında minimum SDK/target geçişini eksiksiz tamamlaman için hazırlandı — her maddeyi işaretleyerek ilerleyebilirsin.
SSS
App Store'a yüklemek için hangi Xcode sürümü zorunlu?
28 Nisan 2026'dan itibaren App Store Connect'e yüklenen iOS ve iPadOS uygulamaları iOS 26 & iPadOS 26 SDK veya sonrasıyla derlenmiş olmalı; pratikte bu, Xcode 26 veya sonraki bir sürümü kullanman gerektiği anlamına geliyor. tvOS, visionOS ve watchOS uygulamaları için de kendi platformlarının 26 SDK ailesi geçerli.
Eski Xcode ile build alırsam reddedilir miyim?
Evet — yürürlükteki minimum SDK şartını karşılamayan yüklemeler App Store Connect tarafından kabul edilmiyor. Bu riski önceden görmek için CI hattına Xcode sürüm kontrolü eklemek, App Store Connect'ten ret almaktan çok daha erken geri bildirim verir.
CI/CD'de Xcode sürümünü nasıl sabitlemeliyim?
Projenin köküne bir .xcode-version dosyası koy; fastlane'in xcversion action'ı bu dosyayı varsayılan olarak okuyor (bakımı sunset edilen xcode-install yerine xcodes action'ına geçiş öneriliyor). GitHub Actions'ta ise xcode-select -switch ile hosted runner üzerindeki istediğin Xcode sürümüne geçiş yapabilirsin; GitHub'ın imaj deposu haftalık güncelleniyor.
Minimum SDK zorunluluğu her yıl ne zaman değişiyor?
Sabit bir takvim maddesi olarak resmi bir "her yıl şu ay" garantisi yok; 2026 döngüsünde Apple duyuruyu 3 Şubat'ta yapıp yürürlüğü 28 Nisan'a koydu, yani aradaki geçiş penceresi yaklaşık üç aydı. Bu yüzden her Apple Developer News duyurusunu takip etmek, sabit bir aya güvenmekten daha güvenilir.
Güncelleme (Eylül 2026)
Bu makale ilk yazıldığında (6 Mayıs 2026) yürürlükte olan kural, 28 Nisan 2026'da başlayan iOS/iPadOS/tvOS/visionOS/watchOS 26 SDK zorunluluğuydu. 9 Eylül 2026'da Apple Developer News'te yayınlanan yeni duyuru, sıradaki dalgayı resmen açıkladı: "Starting April 2027, apps and games uploaded to App Store Connect need to meet the following minimum requirements: iOS and iPadOS apps must be built with the iOS 27 & iPadOS 27 SDK or later..." Yani bir sonraki zorunlu geçiş tarihi Nisan 2027, minimum SDK ailesi ise 27.
Aynı duyuruda iki pratik detay daha var: Xcode 27 Release Candidate o gün yayınlandı ve macOS 27'nin Intel Mac ile Rosetta desteğini tamamen bırakacağı doğrulandı — "macOS 26 is the final release supporting Intel Mac computers and Rosetta — macOS 27 will be Apple silicon only." CI/CD tarafında Xcode sürümü sabitlerken artık runner mimarisini de (Apple silicon zorunlu) kontrol listene eklemen gerekiyor.
16 Eylül 2026'da iOS/iPadOS/macOS/tvOS/visionOS/watchOS 27.2 beta'ları ve Xcode 27.2 beta yayınlandı; Apple bu sürümle testlerin Xcode 27.2 beta üzerinde yapılmasını vurguladı. Aynı duyuruda, 23 Ekim 2026'da satışa çıkacak iPhone Duo'nun iOS 27.1 ile geleceği bildirildi; iPhone Duo'nun yeni poz ve oryantasyonlarını simüle eden Xcode 27.1 desteği ise 18 Eylül 2026'da beta olarak yayınlandı (27A9269). Yani sadece "hangi Xcode zorunlu" sorusuna değil, "hangi Xcode yeni donanımı simüle edebiliyor" sorusuna da CI takvimini güncellerken dikkat etmen gerekiyor — özellikle yeni cihaz desteği gerektiren özellikler geliştiriyorsan minimum zorunluluğun bir adım ötesine, Xcode 27.1/27.2 gibi ara sürümlere geçmen gerekebilir. Yeni Xcode ve platform sürümlerini kendi CI takvimine işlerken bu 27.x dalgasının en güncel Xcode 27 rehberimizden takip edebilirsin: iOS 27 / Xcode 27 geliştirici rehberi.
Sonuç
App Store Xcode SDK zorunluluğu takvimi, tek seferlik bir görev değil — Apple her büyük OS döngüsünde yeni bir minimum SDK dalgası açıyor ve her dalga kendi duyuru-yürürlük penceresiyle geliyor. Takibi kolaylaştırmanın yolu, duyuru anında CI'ını güncellemeye başlamak, .xcode-version gibi tek-kaynak-doğruluk dosyalarıyla sürümü sabitlemek ve bu takvimi Google Play'in kendi target-SDK zorunluluğuyla birlikte tek bir belgede tutmak.
Konuyla ilgili derinleşmek istersen: iOS CI/CD Pipeline: GitHub Actions ve Fastlane, Xcode Cloud pipeline optimizasyonu, Google Play API 36 son tarih rehberi ve App Store Connect API otomasyonu yazılarımıza göz atabilirsin.
Kaynaklar
- Apple Developer News — App Store submissions require new SDKs — 28 Nisan 2026 minimum SDK zorunluluğunun birincil kaynağı (iOS/iPadOS/tvOS/visionOS/watchOS 26 SDK).
- Apple Developer News — Nisan 2027 SDK zorunluluğu duyurusu — 9 Eylül 2026 tarihli, 27 SDK ailesi zorunluluğunu ve Xcode 27 RC'yi duyuran resmi kaynak.
- Apple Developer — Submitting your app — App Store Connect'e gönderim şartlarının kanonik referans sayfası.
- fastlane docs — xcversion action —
.xcode-versiondosyası okuma davranışı vexcodesaction'ına geçiş notu. - GitHub Docs — About GitHub-hosted runners — hosted runner imaj güncelleme sıklığı.
- Google Play Console Help — Target API level requirements — Android 16 (API 36) zorunluluğu ve uzatma tarihi.
- 9to5mac — Apple to update minimum SDK requirements — Apple duyurusunun Xcode sürümü ve deployment target ayrımı üzerine değerlendirmesi.

