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 Auto | API 36 | API 35 या उससे ऊपर |
| Wear OS | API 35 | API 34 या उससे ऊपर |
| Android Automotive OS | API 35 | API 32 या उससे ऊपर |
| Android TV | API 34 | API 33 या उससे ऊपर |
| Android XR | API 34 | API 34 या उससे ऊपर |
इन लेवल से नीचे वाला मौजूदा ऐप "सिर्फ़ उन डिवाइसों पर उपलब्ध होगा जिन पर चल रहा Android OS आपके ऐप के टारगेट API लेवल के बराबर या उससे कम है।" जिन लोगों ने इसे पहले से इंस्टॉल किया है, वे इसे पहले की तरह इस्तेमाल करते रहते हैं। लेकिन नए फ़ोन वाले किसी व्यक्ति को बताया जाता है कि यह ऐप "Android के पुराने वर्शन के लिए बनाया गया था।"
क्या 1 नवंबर 2026 से पहले अब भी एक्सटेंशन मिल सकता है?
सिर्फ़ तभी, जब Play ने आपके ऐप को पॉलिसी चेतावनी भेजी हो और रिक्वेस्ट फ़ॉर्म अब भी उस पर दिख रहा हो। तब भी एक्सटेंशन ज़्यादा से ज़्यादा 1 नवंबर 2026 तक चलता है, इसलिए यह लगभग पूरे हो चुके फ़िक्स के लिए कुछ अतिरिक्त दिन है, कोई नई योजना नहीं।
Google कहता है कि वह प्रभावित ऐप्स को "उनके Notifications के ज़रिए एक्सटेंशन रिक्वेस्ट फ़ॉर्म का लिंक" भेजता है, और यह फ़ॉर्म "Policy status पेज पर चेतावनी या समस्या के डिटेल्स पेज से उपलब्ध है।" जो ऐप्स पहले से नियमों का पालन करते हैं, उन्हें Google कोई फ़ॉर्म नहीं दिखाता।
- Play Console खोलें और ऐप चुनें।
- Inbox या Notifications में टारगेट API लेवल वाला मैसेज देखें। अगर वह मौजूद है, तो उसके लिंक पर जाएँ।
- अगर नहीं है, तो Policy status पर जाएँ, टारगेट API लेवल वाली चेतावनी या समस्या खोलें, और उसके डिटेल्स पेज पर एक्सटेंशन रिक्वेस्ट फ़ॉर्म ढूँढें।
- हर प्रभावित ऐप के लिए फ़ॉर्म भरें। हर ऐप की अपनी अलग चेतावनी होती है।
- एक्सटेंशन मिले या न मिले, 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.gradle | compileSdk और targetSdk को 36 करें, फिर मैनिफ़ेस्ट में predictive back से ऑप्ट आउट करें |
| Flutter | 3.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 टारगेट करता है और जिसे एक और अपडेट चाहिए।
npx expo install expo@^54.0.0 --fixचलाएँ, फिरnpx expo-doctor@latest, और जो भी समस्या बताई जाए उसे ठीक करें।- अगर प्रोजेक्ट Continuous Native Generation इस्तेमाल करता है, तो पुराने
androidऔरiosफ़ोल्डर डिलीट करके दोबारा बिल्ड करें। वरना नेटिव अपग्रेड बदलाव हाथ से लागू करें। - रिलीज़ AAB बनाएँ, उदाहरण के लिए
eas build -p android --profile productionसे। bundletool dump manifest --bundle app.aab --xpath /manifest/uses-sdk/@android:targetSdkVersionसे टारगेट की पुष्टि करें। इसे36प्रिंट करना चाहिए।- internal testing पर अपलोड करें। Android 16 फ़ोन पर हर नेस्टेड स्क्रीन पर बैक दबाएँ, जाँचें कि हेडर और नीचे के बटन सिस्टम बार के नीचे न छिपें, और टैबलेट या रीसाइज़ेबल एमुलेटर को घुमाकर देखें।
- 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 चलाएँ, और पक्का करें कि आपने पुराना आर्टिफ़ैक्ट नहीं, बल्कि नया बिल्ड अपलोड किया है।
स्रोत और आगे पढ़ें
नीतियाँ बदलती रहती हैं। सबमिट करने से पहले आधिकारिक डॉक्यूमेंटेशन ज़रूर देखें।
- Google Play ऐप्स के लिए टारगेट API लेवल आवश्यकताएँ (Play Console Help) ↗30 अक्टू॰ 2026 को जाँचा गया
- बिहेवियर बदलाव: Android 16 या उससे ऊपर टारगेट करने वाले ऐप्स (Android Developers) ↗30 अक्टू॰ 2026 को जाँचा गया
- Expo SDK 54 changelog ↗30 अक्टू॰ 2026 को जाँचा गया
- Flutter 3.38 में नया क्या है ↗30 अक्टू॰ 2026 को जाँचा गया
- fix(mobile): target Android SDK 36, AudiusProject/apps PR #14635 ↗30 अक्टू॰ 2026 को जाँचा गया
- Flutter 3.35.2 स्पष्ट ओवरराइड के बावजूद SDK 34 लागू करता है, flutter/flutter issue #174516 ↗30 अक्टू॰ 2026 को जाँचा गया
चलिए आपके ऐप को मंज़िल तक पहुँचाते हैं।
एक केंद्रित कॉल, यह समझने के लिए कि आपके ऐप और लाइव लिस्टिंग के बीच क्या रुकावट है।
कॉल बुक करें ↗

