ITMS-90725 SDK version issue hatası: Expo ile çözüm
Yazan: Mehdi Azizi
tarihinde yayınlandı, 7 dk.
ITMS-90725, uygulaman çok eski bir iOS SDK ile derlendi demek. 28 Nisan 2026'dan beri Apple Xcode 26 istiyor: Expo SDK 54 veya üstüne geç, yeniden build al.
ITMS-90725, Apple'ın build'in üzerinde yaptığı otomatik bir kontrol: uygulamanın istenen minimumdan daha eski bir iOS SDK ile derlendiğini söylüyor. 15 Ekim 2026 itibarıyla Apple, 28 Nisan 2026'dan beri App Store Connect'e gönderilen uygulamaların Xcode 26 veya üstüyle ve iOS 26 SDK ile derlenmesi gerektiğini belirtiyor. Expo'da her şey EAS build imajında bitiyor: Expo SDK 54'ten itibaren varsayılan olarak seçilen imaj Xcode 26 içeriyor.
Uygulamalarım Solys, TradaZen ve Nolera, Expo SDK 57 üzerinde ve eas.json'da zorlanmış bir imaj yok: Xcode sürümünü EAS kendisi seçiyor. Seninkini nasıl kontrol edeceğini ve projen daha eskiyse ne yapacağını aşağıda anlatıyorum.
ITMS-90725 hatası ne anlama geliyor?
Mesajın başlığı "ITMS-90725: SDK version issue". Uygulamanın hangi SDK ile derlendiğini, ardından istenen minimumu ve onu içeren Xcode sürümünü veriyor. Apple geliştirici forumunda 2024'ten bir mesaj örneğin şöyle başlıyordu: "This app was built with the iOS 16.2 SDK", ardından o dönemin şartı geliyordu.
SDK, Xcode'un uygulamanı derlerken kullandığı iOS kütüphanelerinin bütünü. Her Xcode sürümü kendi SDK'sını içeriyor: Xcode 26, iOS 26 SDK'sını barındırıyor. Yeni bir SDK ile derlemek eski iPhone'lardan vazgeçmek demek değil. Uygulamanın kabul ettiği minimum iOS sürümü ayrı bir ayar: deployment target.
Diğer ITMS hataları gibi bu da bir reviewer reddi değil. Kontrol otomatik ve gönderilen binary üzerinde yapılıyor.
Apple bugün hangi Xcode sürümünü istiyor?
Apple'ın yaklaşan gereksinimler sayfası ve App Store'a gönderim sayfası 15 Ekim 2026'da şunları söylüyordu:
| Tarih | Şart |
|---|---|
| 28 Nisan 2026 | Xcode 26, iOS 26 SDK |
| 9 Eylül 2026 | Minimum hedef iOS 13 |
| Nisan 2027 | iOS 27 SDK, hedef iOS 15 |
ITMS-90725'i tetikleyen kural ilki. Xcode 16 ve iOS 18 SDK ile yapılmış bir build artık kabul edilmiyor. İkincisi SDK ile değil, hedeflenen minimum sürümle ilgili. Üçüncüsü Nisan 2027 için duyurulmuş, kontrol ettiğim anda sayfada kesin bir gün yoktu. Apple şimdiden Xcode 27 ile derleyip test etmeye davet ediyor.
Bu şart düzenli olarak yükseliyor, hep de baharda. Apple'ın aynı sayfası birkaç tarihin kaydını tutuyor: 25 Nisan 2023'te Xcode 14.1, 29 Nisan 2024'te Xcode 15, 28 Nisan 2026'da Xcode 26. Her bahardan önce bir makaleye güvenmek yerine, bu makale dahil, o sayfayı yeniden oku.
Uyarı mı engel mi: farkı nasıl anlarsın?
Son tarihten önce ITMS-90725 bir uyarı olarak geliyor. 2024'te Apple forumunda e-posta, teslimatın başarılı olduğunu belirtip bir sonraki gönderimde düzeltmeyi öneriyordu. Son tarihten sonra Apple, uygulamaların gönderilebilmesi için istenen SDK ile derlenmesi "gerektiğini" yazıyor: build artık kabul edilmiyor.
| İpucu | Uyarı | Engel |
|---|---|---|
| Gönderim tarihi | Son tarihten önce | Son tarihten sonra |
| Gönderim kabul | Evet | Hayır |
| Ne yaparsın | Sonrakinde düzelt | Yeni build |
Bir ITMS-90725 uyarısı bir geri sayımdır. Build bugün geçiyor ama aynı şekilde derlenen bir sonraki, tarihten sonra reddedilecek. Acil bir güncelleme baskısı yokken düzelt.
Bir Expo projesinde ITMS-90725'i düzeltmek
EAS ile uygulaman Expo'nun Mac'lerinde derleniyor, Mac olmadan iOS uygulaması yayınlamak yazısında anlattığım gibi. Xcode sürümü build imajına bağlı. eas.json'da image belirtmezsen EAS auto takma adını kullanıyor: imajı Expo SDK sürümüne göre seçiyor.
8 Ekim 2026'da güncellenen EAS altyapı dokümantasyonuna göre her SDK'ya karşılık gelen imaj şöyle:
| Expo SDK | İmajın Xcode'u | ITMS-90725 |
|---|---|---|
| 57 | 26.6 | Hayır |
| 56 | 26.4 | Hayır |
| 55 | 26.2 | Hayır |
| 54 | 26.0 | Hayır |
| 53 | 16.4 | Evet |
| 52 | 16.2 | Evet |
- Son build'inin kullandığı imaja bak. expo.dev'deki build sayfasında, logların "Spin up build environment" bölümü imajın adını ve Xcode sürümünü gösteriyor.
- SDK 54 veya üstündeysen zorlanmış bir imaj ara.
macos-sequoia-15.6-xcode-16.4gibi Xcode 16'yı gösteren birimagesatırı hatayı tetiklemeye yeter. Expo dokümantasyonu bunu Xcode 26 istemeyenler için SDK 54 imajı olarak sunuyor: 28 Nisan 2026'dan beri bu seçim redde götürüyor. Satırı sil: EAS varsayılan imaja döner. - SDK 53 veya altındaysan SDK yükselt. Expo'nun 27 Nisan 2026 tarihli duyurusundaki önerisi bu: en az SDK 54'e geçmek.
- Yeniden build al ve tekrar gönder. SDK binary'nin içine sabitleniyor: uzaktan güncelleme hiçbir şeyi değiştirmez.
Eski bir SDK için geçici çözüm
Expo'nun aynı duyurusu, hemen yükseltemiyorsan bir seçenek veriyor: eas.json'da, production profilinde bir Xcode 26 imajını zorlamak.
{
"build": {
"production": {
"ios": {
"image": "macos-sequoia-15.6-xcode-26.2"
}
}
}
}
Expo uyarıyor: tüm SDK sürümleri Xcode 26 ile uyumlu değil ve sonuç kütüphanelerine de bağlı. Bunu bir düzeltme olarak değil, bir erteleme olarak gör. Build derlemede başarısız olursa tek yol SDK yükseltmek.
SDK'yı her seferinde bir sürüm yükselt
Expo'nun güncelleme rehberi, her adımda neyin bozulduğunu görmek için sürümleri tek tek yükseltmeyi öneriyor. SDK 53'ten SDK 54'e geçmek için:
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
ios klasörün Expo tarafından üretiliyorsa sil: bir sonraki build'de yeniden oluşturulur. Sonra bir sonraki sürüm için tekrar başlamadan önce uygulamayı iPhone'unda test et.
En son SDK'yı hedeflemeden önce bilmen gereken bir nokta var. Expo sürüm tablosuna göre SDK 54 ve 55, iOS 15.1 ve üstünü kabul ediyor, SDK 56 ve 57 ise yalnızca iOS 16.4 ve üstünü. Yani SDK 56'ya geçmek iOS 15'te kalmış iPhone'ları dışarıda bırakır. ITMS-90725'i kaldırmak için SDK 54 yeterli.
Göndermeden önce bir build'in SDK'sını kontrol etmek
Xcode, her build'in Info.plist dosyasına kullanılan SDK'yı ve Xcode sürümünü yazıyor. IPA'yı expo.dev'deki build sayfasından indir, sonra Mac'inde çalıştır:
unzip -q MonApp.ipa -d ipa
plutil -extract DTSDKName raw ipa/Payload/*.app/Info.plist
plutil -extract DTXcode raw ipa/Payload/*.app/Info.plist
App Store'a gidecek bir build için ilk değer iphoneos26 ile başlamalı. İkincisi Xcode sürümünü kodluyor: Nolera'nın simülatör için Xcode 26.2 ile yapılmış bir build'inde 2620 alıyorum. iphoneos18 ya da 16 ile başlayan bir değer görürsen build reddedilecek.
Kendi Mac'inde derliyorsan önemli olan EAS imajı değil, senin Xcode'un. xcodebuild -version aktif sürümü gösteriyor. CI'da da aynı mantık: Xcode sürümü seçilen makineye bağlı. 2024'te Apple forumunda bazı geliştiriciler, GitHub Actions makineleri Xcode 15 için fazla eski bir macOS üzerinde çalıştığı için ITMS-90725 alıyordu.
Doğru build'i gönderdikten sonra, incelemeye göndermeden önce TestFlight üzerinde test et. Yeni bir build de incelemeden geçiyor, App Store onay süresi yazısında anlattığım sürelerle.
Build'ini sürprizsiz göndermek
ITMS-90725'in önüne bir dakikada geçilir: her production build'inden önce imajı ve SDK'yı kontrol et. Diğer otomatik kontroller de aynı titizliği istiyor, izin metinleri için ITMS-90683 gibi. Bir reviewer'ın reddi daha fazla soğukkanlılık istiyor: izlenecek yol Apple tarafından reddedilen uygulama sayfasında, en sık nedenler de Apple neden uygulamanı reddeder yazısında.
Göndermeden önce dosyanı kontrol etmek için Review Kit, kontrol listemi ve projeni okuyan Claude Code skill'lerini bir araya getiriyor. Gönderimin takılıyorsa ve bir insan gözü istiyorsan, benimle bir saat ayır: projeni görüntülü görüşmede, senin ekranında birlikte ele alırız. İlk yayınına hazırlanıyorsan da ücretsiz diagnostiğini yap: adımları sıraya koyar ve sana Apple reddine karşı kontrol listemi gönderir.
Sık sorulan sorular
ITMS-90725 uygulamamı yayınlamamı engeller mi?
Apple'ın belirlediği son tarihten sonra evet: build artık kabul edilmiyor ve yenisini derlemen gerekiyor. Son tarihten önce bir uyarı: build geçer ama aynı şekilde derlenirse bir sonraki reddedilir.
iOS 26 SDK ile derlemek için eski iPhone'lardan vazgeçmek gerekir mi?
Hayır. Derleme SDK'sı ve minimum iOS sürümü iki ayrı ayar. Expo'da bu minimumu Expo SDK sürümün belirliyor: SDK 54 ve 55 için iOS 15.1, SDK 56 ve 57 için iOS 16.4.
ITMS-90725 uzaktan güncellemeyle düzeltilebilir mi?
Hayır. SDK, derleme anında binary'ye yazılıyor. Uzaktan güncelleme yalnızca JavaScript'i ve kaynakları değiştirir. Xcode 26 ile yeniden build alıp tekrar göndermen gerekiyor.
EAS'in hangi Xcode sürümünü kullandığını nasıl öğrenirim?
expo.dev'de build'inin loglarını aç, "Spin up build environment" bölümüne bak. İmajın adı Xcode sürümünü gösteriyor, örneğin macos-tahoe-26.5-xcode-26.6. Tam liste EAS altyapı dokümantasyonunda.
Nisan 2027 şartı neyi değiştirecek?
Apple'ın gönderim sayfasına göre iOS 27 SDK ile derlemek ve en az iOS 15'i hedeflemek gerekecek. EAS tarafında Expo, gelecekteki SDK 58 için Xcode 27'li bir imaj planlıyor: derlemeden önce build imajları listesini kontrol et. Kesin günü öğrenmek için baharda Apple'ın sayfasını yeniden oku.

