എന്തുകൊണ്ടാണ് ഞാൻ ഇപ്പോഴും ഒരു API ലെവൽ 34 മുന്നറിയിപ്പ് കാണുന്നത്?
ഫ്ലട്ടർ ഡെവലപ്മെൻ്റിൽ, ഏറ്റവും പുതിയ Android API ലെവൽ ടാർഗെറ്റുചെയ്യുന്നത് പുതിയ ഫീച്ചറുകളുമായും സുരക്ഷാ അപ്ഗ്രേഡുകളുമായും ആപ്പ് അനുയോജ്യത ഉറപ്പാക്കുന്നതിന് നിർണായകമാണ്. അടുത്തിടെ, ടാർഗെറ്റ് എസ്ഡികെ പതിപ്പ് എപിഐ ലെവൽ 34 (ആൻഡ്രോയിഡ് 14) ലേക്ക് മാറ്റിയതിന് ശേഷം, വിജയകരമായ ബിൽഡ് ഉണ്ടായിരുന്നിട്ടും, ആപ്പ് ആൻഡ്രോയിഡ് 14 അല്ലെങ്കിൽ അതിലും ഉയർന്നത് ടാർഗെറ്റ് ചെയ്യണമെന്ന് Play കൺസോൾ ഇപ്പോഴും മുന്നറിയിപ്പ് നൽകുന്നതായി ഡെവലപ്പർമാർ റിപ്പോർട്ട് ചെയ്തു.
ഈ അസമത്വം ആശയക്കുഴപ്പം സൃഷ്ടിച്ചേക്കാം, പ്രത്യേകിച്ചും മുമ്പത്തെ ആപ്പ് ബണ്ടിലുകൾ ഇപ്പോഴും കൺസോളിൽ പ്രവർത്തിക്കുമ്പോൾ. മുൻ പതിപ്പുകൾ നിലവിലെ അപ്ലോഡിനെ എങ്ങനെ ബാധിക്കുന്നുവെന്ന് മനസിലാക്കുന്നതും ഈ മുന്നറിയിപ്പ് കൈകാര്യം ചെയ്യുന്നതും നിങ്ങളുടെ ഫ്ലട്ടർ ആപ്പ് ഫലപ്രദമായി റിലീസ് ചെയ്യുന്നതിന് നിർണായകമാണ്.
കമാൻഡ് | വിവരണം |
---|---|
compileSdkVersion | ആപ്പ് കംപൈൽ ചെയ്യാൻ ഉപയോഗിച്ച API ലെവൽ നിർണ്ണയിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ഇത് 34 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, ഇത് Android 14 ലക്ഷ്യമിടുന്നു. |
targetSdkVersion | ആപ്പ് പ്രവർത്തിക്കുന്ന Android API ലെവൽ നിർവചിക്കുന്നു. 34-ലേക്ക് അപ്ഡേറ്റ് ചെയ്യുന്നത് ആൻഡ്രോയിഡ് 14-ന് അനുയോജ്യത ഉറപ്പാക്കുന്നു. |
google.auth.default() | ക്ലൗഡ് സേവനങ്ങൾക്കൊപ്പം സാധാരണയായി ഉപയോഗിക്കുന്ന Google API-കൾ ആക്സസ് ചെയ്യുന്നതിനുള്ള ഡിഫോൾട്ട് ക്രെഡൻഷ്യലുകൾ വീണ്ടെടുക്കുന്നു. |
build('androidpublisher', 'v3') | ഗൂഗിൾ പ്ലേ ഡെവലപ്പർ എപിഐ ആരംഭിക്കുന്നതിനാൽ ആപ്പ് പാക്കേജുകളും റിലീസുകളും പ്രോഗ്രമാറ്റിക്കായി മാനേജ് ചെയ്യാം. |
service.edits().insert() | ആപ്പ് മെറ്റാഡാറ്റയിലോ ബണ്ടിലുകളിലോ മാറ്റങ്ങൾ വരുത്തുന്നതിന് ആവശ്യമായ Google Play കൺസോളിൽ ഒരു പുതിയ എഡിറ്റ് സെഷൻ തുറക്കുന്നു. |
bundles = service.edits().bundles().list() | ഒരു നിർദ്ദിഷ്ട ആപ്പ് പതിപ്പുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള എല്ലാ ആപ്പ് ബണ്ടിലുകളും ലിസ്റ്റുചെയ്യുന്നു. പഴയ പതിപ്പുകൾ ഇപ്പോഴും സജീവമാണോ എന്ന് നിർണ്ണയിക്കാൻ ഇത് സ്ക്രിപ്റ്റിനെ അനുവദിക്കുന്നു. |
service.edits().bundles().delete() | Google Play കൺസോളിൽ നിന്ന് ഒരു സജീവ പാക്കേജ് നീക്കംചെയ്യുന്നു. കാലഹരണപ്പെട്ടതോ വൈരുദ്ധ്യമുള്ളതോ ആയ ബിൽഡുകൾ ഇല്ലാതാക്കാൻ ഇത് ഉപയോഗപ്രദമാണ്. |
service.edits().commit() | ആപ്പിൻ്റെ കോൺഫിഗറേഷനിലെയും ബണ്ടിലുകളിലെയും എല്ലാ മാറ്റങ്ങളും ഉൾപ്പെടെ എഡിറ്റ് സെഷനിൽ വരുത്തിയ മാറ്റങ്ങൾ വരുത്തുന്നു. |
ഫ്ലട്ടറിലെ API ലെവൽ ടാർഗെറ്റിംഗിനുള്ള പരിഹാരം മനസ്സിലാക്കുന്നു
API ലെവൽ 34 ആപ്പ് ശരിയായി ടാർഗെറ്റുചെയ്യുന്നുവെന്ന് ഉറപ്പാക്കാൻ ആദ്യ സ്ക്രിപ്റ്റ് Flutter പ്രോജക്റ്റിൻ്റെ Android സജ്ജീകരണം പരിഷ്ക്കരിക്കുന്നു. compileSdkVersion, targetSdkVersion എന്നിവയാണ് നിർണായക കമാൻഡുകൾ, ഇത് സമാഹരണത്തിലും വിന്യാസത്തിലും ഉപയോഗിക്കുന്ന Android SDK പതിപ്പുകൾ വ്യക്തമാക്കുന്നു. compileSdkVersion 34 ആയി സജ്ജീകരിക്കുന്നത് പ്രോഗ്രാം Android 14 ഉപയോഗിച്ചാണെന്ന് ഉറപ്പാക്കുന്നു, അതേസമയം targetSdkVersion ആപ്പ് പ്രവർത്തിപ്പിക്കുന്നതിന് ഉദ്ദേശിച്ച Android പതിപ്പ് വ്യക്തമാക്കുന്നു. ഈ പരിഷ്ക്കരണങ്ങൾ ഏറ്റവും പുതിയ Google Play സ്റ്റോർ സമർപ്പിക്കൽ മാനദണ്ഡങ്ങൾ പാലിക്കുന്നതിന് പ്രോജക്റ്റ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുന്നു, പിന്തുണയ്ക്കാത്ത API ലെവലുകളെക്കുറിച്ചുള്ള മുന്നറിയിപ്പ് നീക്കം ചെയ്യുന്നു.
രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് പൈത്തൺ വഴി Google Play കൺസോൾ API മായി ആശയവിനിമയം നടത്തുന്നു. പ്രശ്നങ്ങൾക്ക് കാരണമായേക്കാവുന്ന പഴയ സോഫ്റ്റ്വെയർ ബണ്ടിലുകൾ കണ്ടെത്തി നീക്കം ചെയ്യുന്ന പ്രക്രിയ ഇത് ഓട്ടോമേറ്റ് ചെയ്യുന്നു. google.auth.default() Play Store API ആക്സസ് ചെയ്യുന്നതിനുള്ള ഡിഫോൾട്ട് ക്രെഡൻഷ്യലുകൾ നൽകുന്നു, അതേസമയം build('androidpublisher', 'v3') Google Play ഡെവലപ്പർ API ആരംഭിക്കുന്നു. സജീവ ആപ്പ് ബണ്ടിലുകൾ ലഭിക്കാൻ സ്ക്രിപ്റ്റ് പിന്നീട് service.edits().bundles().list() ഉപയോഗിക്കുന്നു, കൂടാതെ ഒരു പഴയ പതിപ്പ് കണ്ടെത്തിയാൽ, service.edits().bundles().delete() അത് ഇല്ലാതാക്കുന്നു. അവസാനമായി, service.edits().commit() കമാൻഡ് എല്ലാ മാറ്റങ്ങളും സംരക്ഷിക്കുകയും പ്രയോഗിക്കുകയും ചെയ്യുന്നു, പിശക് സന്ദേശത്തിന് കാരണമായേക്കാവുന്ന കാലഹരണപ്പെട്ട ഏതെങ്കിലും ബണ്ടിലുകളിൽ നിന്ന് ആപ്പ് വ്യക്തമാണെന്ന് ഉറപ്പുനൽകുന്നു.
പരിഹാരം: ഫ്ലട്ടർ ആപ്പുകൾക്കായി ശരിയായ ടാർഗെറ്റ് SDK ലെവൽ അപ്ഡേറ്റ് ഉറപ്പാക്കുക.
ഫ്ലട്ടർ (ഡാർട്ട്) ആൻഡ്രോയിഡ് മാനിഫെസ്റ്റ് അപ്ഡേറ്റ്
android {
compileSdkVersion 34
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 34
versionCode 1
versionName "1.0"
}
}
ബാക്കെൻഡ് സ്ക്രിപ്റ്റ്: ബണ്ടിൽ പതിപ്പ് പരിശോധിച്ചുറപ്പിക്കുകയും പഴയ ബണ്ടിൽ നിർജ്ജീവമാക്കുകയും ചെയ്യുന്നു
സജീവ ആപ്പ് ബണ്ടിലുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള Google Play കൺസോൾ API (പൈത്തൺ).
import google.auth
from googleapiclient.discovery import build
credentials, project = google.auth.default()
service = build('androidpublisher', 'v3', credentials=credentials)
package_name = 'com.example.myapp'
edit_id = service.edits().insert(body={}, packageName=package_name).execute()['id']
bundles = service.edits().bundles().list(packageName=package_name, editId=edit_id).execute()
for bundle in bundles['bundles']:
if bundle['versionCode'] == 1: # First build still active
service.edits().bundles().delete(packageName=package_name, editId=edit_id,
bundleId=bundle['id']).execute()
service.edits().commit(packageName=package_name, editId=edit_id).execute()
ഫ്ലട്ടർ ആപ്പ് അപ്ഡേറ്റുകളിലെ വൈരുദ്ധ്യമുള്ള ബണ്ടിലുകൾ പരിഹരിക്കുന്നു.
Flutter ആപ്പിൻ്റെ targetSdkVersion അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ ഒരു സാധാരണ പ്രശ്നം Google Play കൺസോളിൽ ഇപ്പോഴും സജീവമായി കാണിക്കുന്ന പഴയ ആപ്പ് ബണ്ടിലുകളുടെ സാന്നിധ്യമാണ്. ഈ ബണ്ടിലുകൾ കാലഹരണപ്പെട്ടതാണെങ്കിൽപ്പോലും, "ആപ്പ് ആൻഡ്രോയിഡ് 14 (API ലെവൽ 34) അല്ലെങ്കിൽ അതിലും ഉയർന്നത് ആപ്പ് ടാർഗെറ്റുചെയ്യണം" എന്നതുപോലുള്ള മുന്നറിയിപ്പുകളുടെ ഫലമായി, ഏറ്റവും പുതിയ ബിൽഡ് ശരിയായി തിരിച്ചറിയുന്നതിൽ നിന്ന് അവയ്ക്ക് തടയാനാകും. targetSdkVersion 34 ആയി മാറ്റേണ്ടത് ആവശ്യമാണ്, മുൻ പതിപ്പുകൾ അപ്ഡേറ്റ് പ്രക്രിയയെ തടസ്സപ്പെടുത്തുന്നില്ലെന്ന് ഡെവലപ്പർമാർ ഉറപ്പാക്കണം. ആപ്പ് പതിപ്പുകൾ കൈകാര്യം ചെയ്യുന്നത്, പ്രത്യേകിച്ച് കാലഹരണപ്പെട്ട ബണ്ടിലുകൾ ഇല്ലാതാക്കുന്നത്, ഈ പ്രശ്നം പരിഹരിക്കാൻ സഹായിക്കും.
build.gradle ഫയലിൽ ടാർഗെറ്റ് API ലെവൽ ഉചിതമായി നിർവചിക്കുന്നതിനു പുറമേ, സജീവമായ പതിപ്പുകൾ Google Play കൺസോളിൽ പതിവായി അവലോകനം ചെയ്യണം. ഡവലപ്പർമാർ Google Play Developer API പോലുള്ള ടൂളുകൾ ഉപയോഗിക്കണം അല്ലെങ്കിൽ കാലഹരണപ്പെട്ട പാക്കേജുകൾ സ്വമേധയാ പ്രവർത്തനരഹിതമാക്കണം. ഏറ്റവും പുതിയ ബിൽഡ് കോൺഫിഗറേഷൻ പ്ലേ സ്റ്റോർ കൃത്യമായി പ്രതിഫലിപ്പിക്കുന്നുവെന്ന് ഇത് ഉറപ്പാക്കുന്നു. അപ്ഡേറ്റുകൾക്കായി ആപ്പുകൾ കർശനമായ പതിപ്പിംഗ് മാനദണ്ഡങ്ങൾ പാലിക്കാൻ Google Play ആവശ്യപ്പെടുന്നതിനാൽ, Play കൺസോളിലെ കോഡും ബണ്ടിലുകളും നിയന്ത്രിക്കുന്നത് സുഗമമായ പരിവർത്തനത്തിന് ഉറപ്പുനൽകുകയും പരിഹരിക്കപ്പെടാത്ത API ലെവൽ മുന്നറിയിപ്പുകൾ നേരിടാനുള്ള സാധ്യത കുറയ്ക്കുകയും ചെയ്യുന്നു.
ഫ്ലട്ടർ ഉപയോഗിച്ച് Android 14 API ലെവൽ 34 ടാർഗെറ്റുചെയ്യുന്നതിനെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങൾ.
- targetSdkVersion അപ്ഡേറ്റ് ചെയ്തിട്ടും API ലെവൽ മുന്നറിയിപ്പ് നിലനിൽക്കുന്നത് എന്തുകൊണ്ട്?
- Play Console-ൽ തുടർന്നും മുമ്പത്തെ ആപ്പ് ബണ്ടിലുകൾ സജീവമായി നിയുക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, ഇത് വൈരുദ്ധ്യങ്ങൾക്ക് കാരണമായേക്കാം.
- Google Play കൺസോളിലെ കാലഹരണപ്പെട്ട ബണ്ടിലുകൾ എങ്ങനെ പ്രവർത്തനരഹിതമാക്കാം?
- പഴയ പതിപ്പുകൾ നിർജ്ജീവമാക്കാൻ Google Play ഡെവലപ്പർ API ഉപയോഗിക്കുക, അല്ലെങ്കിൽ Play കൺസോൾ ഇൻ്റർഫേസ് ഉപയോഗിച്ച് നേരിട്ട് ചെയ്യുക.
- ഫ്ലട്ടറിലെ targetSdkVersion ൻ്റെ പ്രവർത്തനം എന്താണ്?
- പുതിയ Android ഫീച്ചറുകളുമായുള്ള അനുയോജ്യത ഉറപ്പാക്കിക്കൊണ്ട് നിങ്ങളുടെ പ്രോഗ്രാം ഏത് API നിലയിലാണ് പ്രവർത്തിക്കേണ്ടത് എന്ന് ഇത് നിർണ്ണയിക്കുന്നു.
- compileSdkVersion, targetSdkVersion എന്നിവ തമ്മിലുള്ള വ്യത്യാസം എന്താണ്?
- compileSdkVersion കംപൈലേഷൻ സമയത്ത് ഉപയോഗിക്കുന്ന SDK പതിപ്പ് വ്യക്തമാക്കുന്നു, അതേസമയം targetSdkVersion നിങ്ങളുടെ പ്രോഗ്രാം റൺടൈമിൽ ലക്ഷ്യമിടുന്ന പതിപ്പ് വ്യക്തമാക്കുന്നു.
- Play കൺസോളിൽ നിലവിൽ സജീവമായ ബണ്ടിലുകൾ എനിക്ക് എങ്ങനെ കാണാനാകും?
- നിങ്ങൾക്ക് അവ service.edits().bundles().list() ഉപയോഗിച്ച് ലിസ്റ്റുചെയ്യാം അല്ലെങ്കിൽ പ്ലേ കൺസോളിൽ നേരിട്ട് കാണുക.
API ടാർഗെറ്റുചെയ്യൽ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള പ്രധാന ടേക്ക്അവേകൾ.
നിങ്ങളുടെ ഫ്ലട്ടർ ആപ്പ് ഉചിതമായ API ലെവലാണ് ലക്ഷ്യമിടുന്നതെന്ന് ഉറപ്പാക്കുന്നത് Play സ്റ്റോർ പാലിക്കുന്നതിന് അത്യന്താപേക്ഷിതമാണ്. targetSdkVersion 34-ലേക്ക് അപ്ഡേറ്റ് ചെയ്തതിന് ശേഷം Play കൺസോളിലെ സജീവ ആപ്പ് ബണ്ടിലുകളുടെ വിപുലമായ വിലയിരുത്തൽ നടത്തണം. ഏറ്റവും പുതിയ ബിൽഡ് ശരിയായി തിരിച്ചറിയുന്നതിൽ നിന്ന് പഴയതും വൈരുദ്ധ്യമുള്ളതുമായ പതിപ്പുകൾ തടഞ്ഞേക്കാം. ഗൂഗിൾ പ്ലേ ഡെവലപ്പർ എപിഐ പോലെയുള്ള സാങ്കേതികവിദ്യകൾ ഉപയോഗിച്ച്, ഡെവലപ്പർമാർക്ക് കാലഹരണപ്പെട്ട ബണ്ടിലുകൾ നിർജ്ജീവമാക്കാനും ഒരു സാധാരണ പ്രശ്നം പരിഹരിക്കാനും മുന്നറിയിപ്പുകളില്ലാതെ വേഗത്തിലുള്ള ആപ്പ് വിതരണം ഉറപ്പാക്കാനും കഴിയും.