सामग्री पर जाएँ
ऐप अपडेट

Google Play पर टारगेट API लेवल 36: 1 नवंबर 2026 का एक्सटेंशन और Expo, Flutter, React Native फिक्स

31 अगस्त की डेडलाइन चूक गए? जानिए 1 नवंबर 2026 का एक्सटेंशन अब भी आपको क्या देता है, फिर बैक नेविगेशन या लेआउट तोड़े बिना Expo, Flutter या React Native को API 36 पर ले जाइए।

संक्षिप्त जवाब

टारगेट API लेवल 36 नियम के अनुसार 31 अगस्त 2026 से Google Play पर भेजे जाने वाले हर नए ऐप और हर ऐप अपडेट को Android 16 (API 36) टारगेट करना होगा। जिन डेवलपर्स के ऐप्स को पॉलिसी चेतावनी मिली थी, वे Policy status पेज से 1 नवंबर 2026 तक का एक्सटेंशन माँग सकते थे। यह एक्सटेंशन खत्म होते ही Play तब तक अपडेट रोक देता है जब तक आप targetSdk 36 वाला बिल्ड अपलोड नहीं करते। Expo SDK 54+, Flutter 3.38+ और React Native 0.81+ डिफ़ॉल्ट रूप से API 36 टारगेट करते हैं।

मुख्य बातें
  • 31 अगस्त 2026 से Google Play पर नए ऐप्स और ऐप अपडेट्स को Android 16 (API लेवल 36) टारगेट करना होगा। Wear OS और Automotive के लिए API 35, और Android TV व XR के लिए API 34 ज़रूरी है।
  • एक्सटेंशन सिर्फ़ 1 नवंबर 2026 तक चलता है। इसके फ़ॉर्म का लिंक नियमों का पालन न करने वाले ऐप्स तक Play Console Notifications और Policy status पर चेतावनी वाले पेज के ज़रिए पहुँचता है।
  • अगर कोई मौजूदा फ़ोन ऐप API 35 या उससे ऊपर टारगेट करता है, तो वह नए यूज़र्स के लिए भी उपलब्ध रहता है। डेडलाइन चूकने से आपके अपडेट रुकते हैं, आपकी मौजूदा लिस्टिंग नहीं।
  • Expo SDK 54 (React Native 0.81) और Flutter 3.38 डिफ़ॉल्ट रूप से API 36 टारगेट करते हैं। आम तौर पर हाथ से नंबर बदलने के बजाय अपग्रेड करना बेहतर काम करता है।
  • जब ऐप API 36 टारगेट करता है, तो Android onBackPressed को कॉल करना बंद कर देता है और 600dp या उससे चौड़ी स्क्रीन पर ओरिएंटेशन लॉक को अनदेखा करता है। अपलोड से पहले बैक नेविगेशन और टैबलेट लेआउट टेस्ट करें।
API 36 नहीं, तो अपडेट नहीं

Google Play पर टारगेट API लेवल 36 की शर्त का मतलब है कि Android 16 से नीचे के किसी भी लेवल के लिए बना रिलीज़ शिप नहीं हो सकता। अक्टूबर 2026 तक Play हर उस नए ऐप और अपडेट को रिजेक्ट करता है जो इससे कम लेवल टारगेट करता है, अक्सर Target SDK of artifact is too low मैसेज के साथ। जिन ऐप्स को पॉलिसी चेतावनी मिली थी, वे और समय माँग सकते थे, लेकिन यह एक्सटेंशन 1 नवंबर 2026 को खत्म हो जाता है। यह गाइड बताती है कि एक्सटेंशन अब भी आपको क्या देता है, Expo, Flutter और React Native को API 36 पर कैसे ले जाएँ, और ऐसा करने के बाद आम तौर पर क्या टूटता है।

टारगेट API लेवल 36 की शर्त असल में किस चीज़ को रोकती है?

यह सबमिशन रोकती है। 31 अगस्त 2026 से आप कोई नया फ़ोन ऐप या अपडेट तब तक अपलोड नहीं कर सकते जब तक वह API 36 टारगेट न करे। जो ऐप्स पहले से लाइव हैं और API 35 या उससे ऊपर टारगेट करते हैं, वे नए यूज़र्स समेत सभी के लिए पूरी तरह उपलब्ध रहते हैं।

Google की टारगेट API लेवल आवश्यकताओं के अनुसार, "Google Play पर सबमिट करने के लिए नए ऐप्स और ऐप अपडेट्स को Android 16 (API लेवल 36) या उससे ऊपर टारगेट करना होगा।" आवश्यकताएँ फ़ॉर्म फ़ैक्टर के हिसाब से अलग हैं, और पूरी छूट सिर्फ़ उन स्थायी रूप से प्राइवेट ऐप्स को है जो किसी एक संगठन के अंदर आंतरिक डिस्ट्रिब्यूशन के लिए बने हैं।

फ़ॉर्म फ़ैक्टरनए ऐप्स और अपडेट्स (31 अगस्त 2026 से)मौजूदा ऐप्स पूरी तरह उपलब्ध रहते हैं अगर वे टारगेट करते हैं
फ़ोन, टैबलेट, Android AutoAPI 36API 35 या उससे ऊपर
Wear OSAPI 35API 34 या उससे ऊपर
Android Automotive OSAPI 35API 32 या उससे ऊपर
Android TVAPI 34API 33 या उससे ऊपर
Android XRAPI 34API 34 या उससे ऊपर

इन लेवल से नीचे वाला मौजूदा ऐप "सिर्फ़ उन डिवाइसों पर उपलब्ध होगा जिन पर चल रहा Android OS आपके ऐप के टारगेट API लेवल के बराबर या उससे कम है।" जिन लोगों ने इसे पहले से इंस्टॉल किया है, वे इसे पहले की तरह इस्तेमाल करते रहते हैं। लेकिन नए फ़ोन वाले किसी व्यक्ति को बताया जाता है कि यह ऐप "Android के पुराने वर्शन के लिए बनाया गया था।"

क्या 1 नवंबर 2026 से पहले अब भी एक्सटेंशन मिल सकता है?

सिर्फ़ तभी, जब Play ने आपके ऐप को पॉलिसी चेतावनी भेजी हो और रिक्वेस्ट फ़ॉर्म अब भी उस पर दिख रहा हो। तब भी एक्सटेंशन ज़्यादा से ज़्यादा 1 नवंबर 2026 तक चलता है, इसलिए यह लगभग पूरे हो चुके फ़िक्स के लिए कुछ अतिरिक्त दिन है, कोई नई योजना नहीं।

Google कहता है कि वह प्रभावित ऐप्स को "उनके Notifications के ज़रिए एक्सटेंशन रिक्वेस्ट फ़ॉर्म का लिंक" भेजता है, और यह फ़ॉर्म "Policy status पेज पर चेतावनी या समस्या के डिटेल्स पेज से उपलब्ध है।" जो ऐप्स पहले से नियमों का पालन करते हैं, उन्हें Google कोई फ़ॉर्म नहीं दिखाता।

  1. Play Console खोलें और ऐप चुनें।
  2. Inbox या Notifications में टारगेट API लेवल वाला मैसेज देखें। अगर वह मौजूद है, तो उसके लिंक पर जाएँ।
  3. अगर नहीं है, तो Policy status पर जाएँ, टारगेट API लेवल वाली चेतावनी या समस्या खोलें, और उसके डिटेल्स पेज पर एक्सटेंशन रिक्वेस्ट फ़ॉर्म ढूँढें।
  4. हर प्रभावित ऐप के लिए फ़ॉर्म भरें। हर ऐप की अपनी अलग चेतावनी होती है।
  5. एक्सटेंशन मिले या न मिले, 1 नवंबर 2026 से पहले API 36 बिल्ड अपलोड करने की योजना बनाएँ। उस तारीख के बाद अपडेट्स के लिए API 36 ज़रूरी है।

Expo, Flutter और React Native को API 36 पर कैसे ले जाएँ?

सबसे साफ़ रास्ता है ऐसे फ़्रेमवर्क वर्शन पर अपग्रेड करना जो पहले से API 36 टारगेट करता हो: Expo SDK 54, React Native 0.81 या Flutter 3.38। अगर आप अभी अपग्रेड नहीं कर सकते, तो नंबर हाथ से बढ़ा सकते हैं, लेकिन तब Android 16 के बिहेवियर बदलाव भी आपको खुद संभालने होंगे।

स्टैकडिफ़ॉल्ट रूप से API 36 टारगेट करता हैनंबर कहाँ रहता हैअपग्रेड न कर पाएँ तो मैनुअल तरीका
Expo (managed / CNG)SDK 54 (React Native 0.81) सेprebuild से जनरेट होता है; expo-build-properties से ओवरराइड करेंexpo-build-properties प्लगइन में targetSdkVersion: 36 और compileSdkVersion: 36
React Native (bare)0.81 सेandroid/build.gradlecompileSdk और targetSdk को 36 करें, फिर मैनिफ़ेस्ट में predictive back से ऑप्ट आउट करें
Flutter3.38 से (flutter.targetSdkVersion = 36)android/app/build.gradle(.kts)हार्डकोड किए गए 35 को 36 या flutter.targetSdkVersion से बदलें

Expo. SDK 54 changelog के अनुसार SDK 54 और React Native 0.81 "अब Android 16 टारगेट करते हैं।" npx expo install expo@^54.0.0 --fix से अपग्रेड करें, npx expo-doctor@latest चलाएँ, और अगर आप Continuous Native Generation इस्तेमाल करते हैं, तो "अगर आपने android और ios डायरेक्टरी पिछले SDK वर्शन के लिए जनरेट की थीं, तो उन्हें डिलीट कर दें।" SDK 53 पर आप expo-build-properties प्लगइन से targetSdkVersion: 36 सेट करने की कोशिश कर सकते हैं, लेकिन React Native 0.79 अब भी बैक को onBackPressed से हैंडल करता है, इसलिए शिप करने से पहले अगला सेक्शन पढ़ें।

Flutter. Flutter 3.38 रिलीज़ नोट्स में डिफ़ॉल्ट वैल्यू flutter.compileSdkVersion (API 36) और flutter.targetSdkVersion (API 36) बताई गई हैं, और "आपको अपनी बिल्ड फ़ाइलों में Flutter SDK द्वारा दिए गए API लेवल वेरिएबल्स इस्तेमाल करने की पुरज़ोर सलाह" दी गई है। वर्शन 3.38 को कम से कम Java 17 भी चाहिए। अगर आपके ऐप मॉड्यूल में targetSdk = 35 हार्डकोड है, तो Flutter अपग्रेड उसे नहीं बदलेगा, इसलिए फ़ाइल जाँच लें।

Bare React Native. android/build.gradle में compileSdkVersion और targetSdkVersion को 36 करें। 0.81 और उसके बाद के वर्शन पर आपका काम लगभग पूरा है। पुराने वर्शन पर AndroidManifest.xml में <application> पर android:enableOnBackInvokedCallback="false" भी जोड़ें। इसके बिना हार्डवेयर बैक बटन और बैक जेस्चर आपके JavaScript नेविगेशन को छोड़ देते हैं।

ऐप के Android 16 टारगेट करने पर क्या टूटता है?

सबसे ज़्यादा बैक नेविगेशन और बड़ी स्क्रीन के लेआउट टूटते हैं। API 36 टारगेट होने पर Android onBackPressed को कॉल करना बंद कर देता है, edge-to-edge से ऑप्ट आउट नहीं करने देता, और कम से कम 600dp चौड़े डिस्प्ले पर ओरिएंटेशन और रीसाइज़ेबिलिटी लॉक को अनदेखा करता है।

Google के Android 16 बिहेवियर बदलावों में से क्रॉस-प्लेटफ़ॉर्म ऐप्स के लिए सबसे अहम बदलाव:

  • Predictive back: "onBackPressed कॉल नहीं होता और KeyEvent.KEYCODE_BACK अब डिस्पैच नहीं होता।" android:enableOnBackInvokedCallback="false" सेट करना एक अस्थायी ऑप्ट-आउट है।
  • Edge-to-edge: windowOptOutEdgeToEdgeEnforcement "डिप्रिकेटेड और डिसेबल्ड" है, इसलिए हेडर या नीचे का बटन स्टेटस बार या जेस्चर बार के नीचे छिप सकता है।
  • बड़ी स्क्रीन: 600dp और उससे चौड़े डिस्प्ले पर screenOrientation, resizableActivity और aspect-ratio सीमाएँ अनदेखी की जाती हैं, जिससे सिर्फ़ पोर्ट्रेट वाले लेआउट खिंच सकते हैं। गेम्स को छूट है। PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY एक अस्थायी ऑप्ट-आउट है जो "API लेवल 37 टारगेट करने पर लागू नहीं होगा।"
  • टेक्स्ट: elegantTextHeight अनदेखा किया जाता है, जिससे अरबी, थाई, तमिल और कई अन्य लिपियों की लाइन हाइट बदल सकती है।
  • हेल्थ सेंसर: BODY_SENSORS की जगह READ_HEART_RATE जैसी बारीक हेल्थ परमिशन आ गई हैं।

API 36 पर जाते समय दूसरे डेवलपर्स को किन समस्याओं का सामना करना पड़ा?

अब तक की सार्वजनिक रिपोर्ट्स दो तरह की परेशानी दिखाती हैं: बैक बटन का बिहेवियर जो बिना किसी एरर के बदल जाता है, और ऐसी लाइब्रेरीज़ जिनकी वजह से Play को मिले बंडल का टारगेट लेवल प्रोजेक्ट फ़ाइलों में लिखे लेवल से अलग हो जाता है।

Audius (React Native 0.79). पुल रिक्वेस्ट #14635 में Audius टीम बताती है कि Google Play ने Android वर्शन 1.5.186 के दोनों अपलोड Target SDK of artifact is too low के साथ रिजेक्ट कर दिए। उन्होंने compileSdk और targetSdk को 35 से 36 किया, build tools को 36.0.0 पर सेट किया, और android.suppressUnsupportedCompileSdk=36 जोड़ा, क्योंकि "RN 0.79 AGP 8.8 पर पिन है"। उन्होंने enableOnBackInvokedCallback="false" भी सेट किया, क्योंकि इसके बिना बैक "React Navigation को बायपास कर देता।" बाद में React Native 0.81 पर जाने के बाद एक PR में यह ऑप्ट-आउट हटा दिया गया, क्योंकि 0.81 खुद एक OnBackPressedCallback रजिस्टर करता है।

एक Flutter 3.35.2 ऐप. Flutter issue #174516 में एक डेवलपर ने Gradle और मैनिफ़ेस्ट में targetSdk 36 सेट किया, लेकिन Play Console फिर भी कह रहा था: "Your bundle targets SDK 34, but uses a Play Core library that cannot be used with that version." पुरानी com.google.android.play:core:1.10.3 लाइब्रेरी हटाने पर R8 के "Missing classes" एरर आए। उन्हें ठीक करने पर यह मैसेज आया: "You can't rollout this release because it doesn't allow any existing users to upgrade to the newly added app bundles." आखिरकार ProGuard keep rules जोड़ने, minSdk स्पष्ट रूप से सेट करने, और language, density व ABI splits बंद करने के बाद बंडल स्वीकार हुआ, लेकिन डाउनलोड साइज़ बढ़ गया।

साझा सबक: Gradle में नंबर बदलने से काम पूरा नहीं होता। Audius को रनटाइम बिहेवियर ठीक करना पड़ा, और Flutter डेवलपर को एक ऐसी डिपेंडेंसी ठीक करनी पड़ी जो बदल रही थी कि Play बंडल से क्या पढ़ता है। सिर्फ़ कॉन्फ़िग फ़ाइल नहीं, बल्कि बना हुआ आर्टिफ़ैक्ट जाँचें और Android 16 डिवाइस पर टेस्ट करें।

API 36 बिल्ड को अपलोड करने से पहले कैसे जाँचें?

टारगेट लेवल सीधे रिलीज़ बंडल से पढ़ें, फिर बंडल को internal या closed testing ट्रैक पर डालें और Android 16 पर बैक नेविगेशन, इनसेट्स और टैबलेट लेआउट आज़माएँ। रिजेक्शन या प्रोडक्शन बग में इन जाँचों से कहीं ज़्यादा समय लगता है।

उदाहरण: एक Expo SDK 53 ऐप जो API 35 टारगेट करता है और जिसे एक और अपडेट चाहिए।

  1. npx expo install expo@^54.0.0 --fix चलाएँ, फिर npx expo-doctor@latest, और जो भी समस्या बताई जाए उसे ठीक करें।
  2. अगर प्रोजेक्ट Continuous Native Generation इस्तेमाल करता है, तो पुराने android और ios फ़ोल्डर डिलीट करके दोबारा बिल्ड करें। वरना नेटिव अपग्रेड बदलाव हाथ से लागू करें।
  3. रिलीज़ AAB बनाएँ, उदाहरण के लिए eas build -p android --profile production से।
  4. bundletool dump manifest --bundle app.aab --xpath /manifest/uses-sdk/@android:targetSdkVersion से टारगेट की पुष्टि करें। इसे 36 प्रिंट करना चाहिए।
  5. internal testing पर अपलोड करें। Android 16 फ़ोन पर हर नेस्टेड स्क्रीन पर बैक दबाएँ, जाँचें कि हेडर और नीचे के बटन सिस्टम बार के नीचे न छिपें, और टैबलेट या रीसाइज़ेबल एमुलेटर को घुमाकर देखें।
  6. Android 16 फ़िक्स का ज़िक्र करने वाले रिलीज़ नोट्स के साथ प्रोडक्शन पर प्रमोट करें।

टेस्टिंग तेज़ करने के लिए हमारी Google Play closed testing गाइड का टेस्टर सेटअप इस्तेमाल करें, और अपडेट टेक्स्ट के लिए हमारे रिलीज़ नोट्स उदाहरणों से शब्द लें। अगर आप रिलीज़ किसी और को सौंपना चाहते हैं, तो हमारी App Store सबमिशन सर्विस दोनों स्टोर्स के लिए $599 में Play Console और App Store Connect संभालती है। डेवलपर अकाउंट फ़ीस अलग है।

अक्सर पूछे जाने वाले सवाल

अगर मैं 1 नवंबर 2026 का टारगेट API एक्सटेंशन चूक जाऊँ तो क्या होगा?

आपकी मौजूदा लिस्टिंग बनी रहती है। API 35 या उससे ऊपर टारगेट करने वाला फ़ोन ऐप मौजूदा और नए यूज़र्स के लिए उपलब्ध रहता है। जब तक बंडल Android 16 (API 36) टारगेट नहीं करता, Play Console हर नए रिलीज़ को रिजेक्ट करेगा, ज़रूरी बग फ़िक्स को भी। API 35 से नीचे वाले ऐप्स सिर्फ़ उसी Android वर्शन या उससे पुराने वर्शन वाले डिवाइसों पर इंस्टॉल हो सकते हैं।

क्या Wear OS और Android TV ऐप्स को API 36 टारगेट करना होगा?

नहीं। अक्टूबर 2026 तक नए Wear OS और Android Automotive OS ऐप्स और अपडेट्स को API 35, और Android TV व Android XR ऐप्स को API 34 टारगेट करना होगा। सिर्फ़ फ़ोन, टैबलेट और Android Auto ऐप्स के लिए API 36 ज़रूरी है। पूरी छूट सिर्फ़ उस स्थायी रूप से प्राइवेट ऐप को है जो किसी एक संगठन के अंदर डिस्ट्रिब्यूट होता है।

क्या मैं Expo SDK अपग्रेड किए बिना API 36 टारगेट कर सकता हूँ?

SDK 53 पर आप expo-build-properties प्लगइन में targetSdkVersion और compileSdkVersion को 36 सेट कर सकते हैं, और कुछ डेवलपर्स ने ऐसा किया है। SDK 53 जिस React Native 0.79 का इस्तेमाल करता है, वह अब भी बैक प्रेस onBackPressed के ज़रिए भेजता है, और API 36 पर Android 16 उसे कॉल नहीं करता। आपको enableOnBackInvokedCallback को false सेट करके ऑप्ट आउट करना होगा। SDK 54 पर अपग्रेड करना ही आधिकारिक रूप से समर्थित तरीका है।

compileSdkVersion और targetSdkVersion में क्या अंतर है?

compileSdkVersion वह Android API वर्शन है जिसके विरुद्ध आपका कोड कंपाइल होता है। targetSdkVersion Android को बताता है कि आपके ऐप ने किस वर्शन का बिहेवियर अपनाया है, और Google Play इसी को लागू करता है। compileSdk, targetSdk के बराबर या उससे ऊपर होना चाहिए, इसलिए टारगेट 36 पर जाने का मतलब है API 36 या उसके बाद के वर्शन के विरुद्ध कंपाइल करना। उदाहरण के लिए Expo SDK 58, 37 के विरुद्ध कंपाइल करता है और 36 टारगेट करता है।

build.gradle बदलने के बाद भी Play Console क्यों कहता है कि मेरा ऐप पुराना API लेवल टारगेट करता है?

Play टारगेट लेवल आपकी सोर्स फ़ाइलों से नहीं, बल्कि अपलोड किए गए बंडल से पढ़ता है। किसी दूसरे मॉड्यूल में हार्डकोड की गई वैल्यू, पुराना प्लगइन, या पुराने Play Core जैसी लाइब्रेरी मर्ज्ड मैनिफ़ेस्ट को बदल सकती है। असली targetSdkVersion देखने के लिए रिलीज़ AAB पर bundletool dump manifest चलाएँ, और पक्का करें कि आपने पुराना आर्टिफ़ैक्ट नहीं, बल्कि नया बिल्ड अपलोड किया है।

स्रोत और आगे पढ़ें

नीतियाँ बदलती रहती हैं। सबमिट करने से पहले आधिकारिक डॉक्यूमेंटेशन ज़रूर देखें।

बिल्ड लेकर आइए। या आइडिया।

चलिए आपके ऐप को मंज़िल तक पहुँचाते हैं।

एक केंद्रित कॉल, यह समझने के लिए कि आपके ऐप और लाइव लिस्टिंग के बीच क्या रुकावट है।

कॉल बुक करें ↗