İçeriğe geç
Uygulama güncellemeleri

Google Play'de hedef API seviyesi 36: 1 Kasım 2026 uzatması ve Expo, Flutter, React Native çözümü

31 Ağustos son tarihini mi kaçırdınız? 1 Kasım 2026 uzatmasının size hâlâ ne kazandırdığını öğrenin, ardından Expo, Flutter veya React Native uygulamanızı geri gezinmeyi ve düzenleri bozmadan API 36'ya taşıyın.

Kısa cevap

Hedef API seviyesi 36 kuralına göre 31 Ağustos 2026'dan beri Google Play'e gönderilen her yeni uygulama ve uygulama güncellemesi Android 16'yı (API 36) hedeflemelidir. Uygulamaları politika uyarısı alan geliştiriciler, Politika durumu sayfasından 1 Kasım 2026'ya kadar uzatma talep edebiliyordu. Bu uzatma sona erdiğinde Play, targetSdk 36 içeren bir derleme yükleyene kadar güncellemeleri engeller. Expo SDK 54+, Flutter 3.38+ ve React Native 0.81+ varsayılan olarak API 36'yı hedefler.

Öne çıkanlar
  • 31 Ağustos 2026'dan beri Google Play'deki yeni uygulamalar ve uygulama güncellemeleri Android 16'yı (API seviyesi 36) hedeflemelidir. Wear OS ve Automotive için API 35, Android TV ve XR için API 34 gerekir.
  • Uzatma yalnızca 1 Kasım 2026'ya kadar geçerlidir. Başvuru formunun bağlantısı, uyumsuz uygulamalara Play Console Bildirimleri ve Politika durumu sayfasındaki uyarı sayfası üzerinden ulaşır.
  • Mevcut bir telefon uygulaması API 35 veya üzerini hedefliyorsa yeni kullanıcılara açık kalır. Son tarihi kaçırmak mevcut mağaza kaydınızı değil, güncellemelerinizi durdurur.
  • Expo SDK 54 (React Native 0.81) ve Flutter 3.38 varsayılan olarak API 36'yı hedefler. Sürüm yükseltmek genellikle sayıyı elle değiştirmekten daha iyi sonuç verir.
  • Bir uygulama API 36'yı hedeflediğinde Android artık onBackPressed'i çağırmaz ve 600dp veya daha geniş ekranlarda yön kilitlerini yok sayar. Yüklemeden önce geri gezinmeyi ve tablet düzenlerini test edin.
API 36 yoksa güncelleme yok

Google Play'deki hedef API seviyesi 36 şartı, Android 16'nın altındaki herhangi bir sürüm için derlenmiş bir yayının gönderilemeyeceği anlamına gelir. Ekim 2026 itibarıyla Play, daha düşük bir seviyeyi hedefleyen her yeni uygulamayı ve her güncellemeyi, çoğu zaman Target SDK of artifact is too low mesajıyla reddediyor. Politika uyarısı alan uygulamalar ek süre isteyebiliyordu, ancak uzatma 1 Kasım 2026'da sona eriyor. Bu rehber, uzatmanın size hâlâ ne kazandırdığını, Expo, Flutter ve React Native'i API 36'ya nasıl taşıyacağınızı ve geçişten sonra genellikle nelerin bozulduğunu anlatıyor.

Hedef API seviyesi 36 şartı tam olarak neyi engelliyor?

Gönderimleri engeller. 31 Ağustos 2026'dan beri, API 36'yı hedeflemediği sürece yeni bir telefon uygulaması veya güncelleme yükleyemezsiniz. Hâlihazırda yayında olan ve API 35 veya üzerini hedefleyen uygulamalar, yeni kullanıcılar dahil herkes için tamamen erişilebilir kalır.

Google'ın hedef API seviyesi şartlarına göre "Yeni uygulamaların ve uygulama güncellemelerinin Google Play'e gönderilebilmesi için Android 16'yı (API seviyesi 36) veya üzerini hedeflemesi gerekir." Şartlar cihaz türüne göre değişir ve tek tam istisna, tek bir kuruluş içinde dahili dağıtım için tasarlanmış kalıcı olarak özel uygulamalardır.

Cihaz türüYeni uygulamalar ve güncellemeler (31 Ağustos 2026'dan itibaren)Mevcut uygulamalar şu seviyeyi hedefliyorsa tamamen erişilebilir kalır
Telefon, tablet, Android AutoAPI 36API 35 veya üzeri
Wear OSAPI 35API 34 veya üzeri
Android Automotive OSAPI 35API 32 veya üzeri
Android TVAPI 34API 33 veya üzeri
Android XRAPI 34API 34 veya üzeri

Bu seviyelerin altında kalan mevcut bir uygulama "yalnızca, uygulamanızın hedef API seviyesiyle aynı veya daha düşük Android OS sürümünü çalıştıran cihazlarda kullanılabilir olacaktır." Uygulamayı zaten yüklemiş olan kişiler eskisi gibi kullanmaya devam eder. Ancak daha yeni bir telefona sahip biri, uygulamanın "Android'in eski bir sürümü için yapıldığı" uyarısını görür.

1 Kasım 2026'dan önce hâlâ uzatma alabilir misiniz?

Yalnızca Play uygulamanıza bir politika uyarısı gönderdiyse ve talep formu hâlâ görünüyorsa. O durumda bile uzatma en geç 1 Kasım 2026'ya kadar sürer; yani bu, yeni bir plan değil, neredeyse bitmiş bir düzeltme için birkaç günlük ek süredir.

Google, etkilenen uygulamalara "Bildirimler aracılığıyla bir uzatma talep formu bağlantısı" gönderdiğini ve formun "Politika durumu sayfasındaki uyarının veya sorunun ayrıntılar sayfasından erişilebilir" olduğunu belirtiyor. Google, zaten uyumlu olan uygulamalara form göstermez.

  1. Play Console'u açın ve uygulamayı seçin.
  2. Gelen Kutusu'nda veya Bildirimler'de hedef API seviyesi mesajını arayın. Oradaysa bağlantısını izleyin.
  3. Değilse Politika durumu'na gidin, hedef API seviyesi uyarısını veya sorununu açın ve ayrıntılar sayfasında uzatma talep formunu arayın.
  4. Etkilenen her uygulama için formu doldurun. Her uygulamanın kendi uyarısı vardır.
  5. Uzatma verilse de verilmese de 1 Kasım 2026'dan önce bir API 36 derlemesi yüklemeyi planlayın. Bu tarihten sonra güncellemeler için API 36 gerekir.

Expo, Flutter ve React Native API 36'ya nasıl yükseltilir?

En temiz yol, zaten API 36'yı hedefleyen bir framework sürümüne geçmektir: Expo SDK 54, React Native 0.81 veya Flutter 3.38. Henüz sürüm yükseltemiyorsanız sayıyı elle artırabilirsiniz, ancak bu durumda Android 16 davranış değişiklikleriyle de kendiniz ilgilenmeniz gerekir.

TeknolojiVarsayılan olarak API 36'yı hedeflediği sürümSayının bulunduğu yerYükseltemiyorsanız manuel yol
Expo (managed / CNG)SDK 54 (React Native 0.81)Prebuild tarafından üretilir; expo-build-properties ile geçersiz kılınexpo-build-properties eklentisinde targetSdkVersion: 36 ve compileSdkVersion: 36
React Native (bare)0.81android/build.gradlecompileSdk ve targetSdk değerlerini 36 yapın, ardından manifest'te predictive back'i devre dışı bırakın
Flutter3.38 (flutter.targetSdkVersion = 36)android/app/build.gradle(.kts)Sabit yazılmış 35 değerini 36 veya flutter.targetSdkVersion ile değiştirin

Expo. SDK 54 değişiklik günlüğü, SDK 54 ve React Native 0.81'in "artık Android 16'yı hedeflediğini" söylüyor. npx expo install expo@^54.0.0 --fix ile yükseltin, npx expo-doctor@latest çalıştırın ve Continuous Native Generation kullanıyorsanız "android ve ios dizinlerini önceki bir SDK sürümü için oluşturduysanız silin." SDK 53'te expo-build-properties eklentisi üzerinden targetSdkVersion: 36 ayarlamayı deneyebilirsiniz, ancak React Native 0.79 geri tuşunu hâlâ onBackPressed üzerinden işler; bu yüzden yayınlamadan önce bir sonraki bölümü okuyun.

Flutter. Flutter 3.38 sürüm notları varsayılanları flutter.compileSdkVersion (API 36) ve flutter.targetSdkVersion (API 36) olarak listeliyor ve "derleme dosyalarınızda Flutter SDK'nın sağladığı API seviyesi değişkenlerini kullanmanızı şiddetle tavsiye ediyor." 3.38 sürümü ayrıca en az Java 17 gerektirir. Uygulama modülünüzde targetSdk = 35 sabit yazılmışsa Flutter yükseltmesi bunu değiştirmez, bu yüzden dosyayı kontrol edin.

Bare React Native. android/build.gradle içinde compileSdkVersion ve targetSdkVersion değerlerini 36 yapın. 0.81 ve sonrasında işin büyük kısmı tamamdır. Daha eski sürümlerde ayrıca AndroidManifest.xml içindeki <application> öğesine android:enableOnBackInvokedCallback="false" ekleyin. Bu olmadan donanım geri tuşu ve geri hareketi JavaScript gezinmenizi atlar.

Bir uygulama Android 16'yı hedeflemeye başladığında ne bozulur?

En sık bozulanlar geri gezinme ve büyük ekran düzenleridir. Hedef API 36 olduğunda Android onBackPressed çağırmayı bırakır, edge-to-edge'den çıkmanıza izin vermez ve en az 600dp genişliğindeki ekranlarda yön ve yeniden boyutlandırma kilitlerini yok sayar.

Google'ın Android 16 davranış değişikliklerinden çapraz platform uygulamalar için en önemli olanlar:

  • Predictive back: "onBackPressed çağrılmaz ve KeyEvent.KEYCODE_BACK artık gönderilmez." android:enableOnBackInvokedCallback="false" ayarı geçici bir devre dışı bırakma yoludur.
  • Edge-to-edge: windowOptOutEdgeToEdgeEnforcement "kullanımdan kaldırıldı ve devre dışı bırakıldı"; bu nedenle bir başlık veya alt düğme durum çubuğunun ya da hareket çubuğunun altında kalabilir.
  • Büyük ekranlar: 600dp ve daha geniş ekranlarda screenOrientation, resizableActivity ve en-boy oranı sınırları yok sayılır; bu da yalnızca dikey düzenleri esnetebilir. Oyunlar muaftır. PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY, "API seviyesi 37 hedeflendiğinde geçerli olmayacak" geçici bir devre dışı bırakma yoludur.
  • Metin: elegantTextHeight yok sayılır; bu, Arapça, Tayca, Tamilce ve diğer bazı yazı sistemlerinde satır yüksekliğini değiştirebilir.
  • Sağlık sensörleri: BODY_SENSORS, READ_HEART_RATE gibi ayrıntılı sağlık izinleriyle değiştirilmiştir.

Diğer geliştiriciler API 36'ya geçerken neyle karşılaştı?

Şimdiye kadarki herkese açık raporlar iki tür sorun gösteriyor: hiçbir hata vermeden değişen geri tuşu davranışı ve Play'in aldığı paketin hedef seviyesini proje dosyalarının söylediğinden farklı hâle getiren kütüphaneler.

Audius (React Native 0.79). #14635 numaralı pull request'te Audius ekibi, Google Play'in Android 1.5.186 sürümünün iki yüklemesini de Target SDK of artifact is too low ile reddettiğini söylüyor. compileSdk ve targetSdk değerlerini 35'ten 36'ya çıkardılar, build tools'u 36.0.0 yaptılar ve "RN 0.79 AGP 8.8'e sabitlendiği" için android.suppressUnsupportedCompileSdk=36 eklediler. Ayrıca enableOnBackInvokedCallback="false" ayarladılar, çünkü bu olmadan geri tuşu "React Navigation'ı atlayacaktı." Daha sonraki bir PR, kendi OnBackPressedCallback'ini kaydeden React Native 0.81'e geçtikten sonra bu devre dışı bırakmayı kaldırdı.

Bir Flutter 3.35.2 uygulaması. Flutter #174516 numaralı sorunda bir geliştirici Gradle'da ve manifest'te targetSdk 36 ayarladı, ancak Play Console yine de "Paketiniz SDK 34'ü hedefliyor, ancak bu sürümle kullanılamayan bir Play Core kütüphanesi kullanıyor" uyarısını verdi. Eski com.google.android.play:core:1.10.3 kütüphanesini kaldırmak R8 "Missing classes" hatalarına yol açtı. Bunları düzeltmek de "Bu sürümü yayınlayamazsınız, çünkü mevcut kullanıcıların yeni eklenen uygulama paketlerine yükseltme yapmasına izin vermiyor" hatasını getirdi. Paket sonunda ProGuard keep kuralları eklendikten, minSdk açıkça ayarlandıktan ve dil, yoğunluk ve ABI bölmeleri kapatıldıktan sonra kabul edildi; bunun bedeli daha büyük bir indirme boyutu oldu.

Ortak ders: Gradle'daki sayıyı değiştirmek işi bitirmez. Audius çalışma zamanı davranışını düzeltmek zorunda kaldı, Flutter geliştiricisi ise Play'in paketten okuduğu değeri değiştiren bir bağımlılığı düzeltmek zorunda kaldı. Yalnızca yapılandırma dosyasını değil, derlenmiş çıktıyı kontrol edin ve bir Android 16 cihazında test edin.

Bir API 36 derlemesini yüklemeden önce nasıl kontrol edersiniz?

Hedef seviyeyi doğrudan yayın paketinden okuyun, ardından paketi dahili veya kapalı test kanalına koyun ve Android 16'da geri gezinmeyi, iç boşlukları (insets) ve bir tablet düzenini deneyin. Bir ret veya üretimdeki bir hata, bu kontrollerden çok daha fazla zamana mal olur.

Örnek: API 35'i hedefleyen ve bir güncellemeye daha ihtiyaç duyan bir Expo SDK 53 uygulaması.

  1. npx expo install expo@^54.0.0 --fix, ardından npx expo-doctor@latest çalıştırın ve raporladığı her şeyi düzeltin.
  2. Proje Continuous Native Generation kullanıyorsa eski android ve ios klasörlerini silin ve yeniden derleyin. Kullanmıyorsa native yükseltme değişikliklerini elle uygulayın.
  3. Yayın AAB dosyasını derleyin, örneğin eas build -p android --profile production ile.
  4. Hedefi bundletool dump manifest --bundle app.aab --xpath /manifest/uses-sdk/@android:targetSdkVersion ile doğrulayın. Çıktı 36 olmalıdır.
  5. Dahili teste yükleyin. Bir Android 16 telefonda her iç içe ekranda geri tuşuna basın, başlıkların ve alt düğmelerin sistem çubuklarının altında kalmadığını kontrol edin ve bir tableti veya yeniden boyutlandırılabilir bir emülatörü döndürün.
  6. Android 16 düzeltmelerinden bahseden sürüm notlarıyla üretime yükseltin.

Testi hızlandırmak için Google Play kapalı test rehberimizdeki test kullanıcısı kurulumunu kullanın ve güncelleme metni için sürüm notu örneklerimizden ifadeler ödünç alın. Yayını başkasına devretmeyi tercih ederseniz, App Store gönderim hizmetimiz her iki mağaza için $599 karşılığında Play Console ve App Store Connect'i kapsar. Geliştirici hesabı ücretleri ayrıdır.

Sıkça sorulan sorular

1 Kasım 2026 hedef API uzatmasını kaçırırsam ne olur?

Mevcut mağaza kaydınız yayında kalır. API 35 veya üzerini hedefleyen bir telefon uygulaması mevcut ve yeni kullanıcılar için erişilebilir olmaya devam eder. Play Console, paket Android 16'yı (API 36) hedefleyene kadar acil hata düzeltmeleri dahil her yeni sürümü reddeder. API 35'in altındaki uygulamalar yalnızca o Android sürümünü veya daha eskisini çalıştıran cihazlara yüklenebilir.

Wear OS ve Android TV uygulamalarının API 36'yı hedeflemesi gerekiyor mu?

Hayır. Ekim 2026 itibarıyla yeni Wear OS ve Android Automotive OS uygulamaları ve güncellemeleri API 35'i, Android TV ve Android XR uygulamaları ise API 34'ü hedeflemelidir. Yalnızca telefon, tablet ve Android Auto uygulamaları için API 36 gerekir. Tek tam istisna, tek bir kuruluş içinde dağıtılan kalıcı olarak özel bir uygulamadır.

Expo SDK'mı yükseltmeden API 36'yı hedefleyebilir miyim?

SDK 53'te expo-build-properties eklentisinde targetSdkVersion ve compileSdkVersion değerlerini 36 olarak ayarlayabilirsiniz ve bazı geliştiriciler bunu yaptı. SDK 53'ün kullandığı React Native 0.79, geri tuşu basımlarını hâlâ onBackPressed üzerinden gönderir ve Android 16, API 36'da bunu artık çağırmaz. enableOnBackInvokedCallback değerini false yaparak bu davranışı devre dışı bırakmanız gerekir. Desteklenen yol SDK 54'e yükseltmektir.

compileSdkVersion ile targetSdkVersion arasındaki fark nedir?

compileSdkVersion, kodunuzun derlendiği Android API sürümüdür. targetSdkVersion ise Android'e uygulamanızın hangi sürümün davranışını benimsediğini söyler ve Google Play bunu zorunlu kılar. compileSdk, targetSdk ile aynı veya daha yüksek olmalıdır; dolayısıyla hedefi 36'ya taşımak API 36 veya üzerine karşı derlemek anlamına gelir. Örneğin Expo SDK 58, 37'ye karşı derler ve 36'yı hedefler.

build.gradle'ı değiştirdikten sonra Play Console neden hâlâ uygulamamın eski bir API seviyesini hedeflediğini söylüyor?

Play hedef seviyeyi kaynak dosyalarınızdan değil, yüklediğiniz paketten okur. Başka bir modüldeki sabit yazılmış bir değer, güncel olmayan bir eklenti veya eski Play Core gibi bir kütüphane birleştirilmiş manifest'i değiştirebilir. Gerçek targetSdkVersion değerini görmek için yayın AAB dosyasında bundletool dump manifest çalıştırın ve eski bir çıktı yerine yeni derlemeyi yüklediğinizden emin olun.

Kaynaklar ve ek okumalar

Politikalar değişir. Göndermeden önce resmi dokümantasyonu kontrol edin.

Sürümü getirin. Ya da fikri.

Uygulamanızı bitiş çizgisinden geçirelim.

Uygulamanızla yayındaki mağaza sayfası arasında ne olduğunu netleştirmek için odaklı bir görüşme.

Görüşme planlayın ↗