നിങ്ങളുടെ iPhone ആപ്പിന് സിസ്റ്റം VPN ഓൺ അല്ലെങ്കിൽ ഓഫ് ചെയ്യാൻ കഴിയാത്തത് എന്തുകൊണ്ട്
ഒരു പൊതു ആപ്പിന് സിസ്റ്റം VPN ടോഗിൾ ചെയ്യാനോ അതിന്റെ അവസ്ഥ വായിക്കാനോ കണക്ഷൻ നിർബന്ധിക്കാനോ കഴിയില്ല. On Demand നിയമങ്ങൾ, മേൽനോട്ടത്തിലുള്ള ഉപകരണങ്ങളിലെ Always On പ്രൊഫൈലുകൾ, MDM എന്നിവയാണ് ഓപ്ഷനുകൾ.
ഒരു പ്രൊഡക്ട് മാനേജർ കമ്പനിയുടെ VPN ഓൺ ചെയ്യുന്ന ബട്ടൺ ആവശ്യപ്പെടുന്നു, ആവശ്യം നിസ്സാരമായി തോന്നുന്നു. iOS-ൽ ഇത് ചെറിയ ഫീച്ചറല്ല; ഇത് പൊതു കരാറിന് പുറത്താണ്, ഓരോ വഴിത്തിരിവും റിവ്യൂവിൽ പരാജയപ്പെടുകയോ അടുത്ത റിലീസിൽ തകരുകയോ ചെയ്യുന്നു. ആവശ്യം പ്ലാറ്റ്ഫോം യഥാർത്ഥത്തിൽ അനുവദിക്കുന്നതിലൂടെ കൊണ്ടുപോകുക, ഡിസൈൻ കൂടുതലും സ്വയം എഴുതപ്പെടും. ആപ്പിന് ഒരു VPN കോൺഫിഗറേഷൻ ഉണ്ടായിരിക്കാം, അത് ആരംഭിക്കാം. ആപ്പിന് സിസ്റ്റം സ്വിച്ചിൽ എത്താൻ കഴിയില്ല, താൻ സൃഷ്ടിക്കാത്ത പ്രൊഫൈലിന്റെ അവസ്ഥ വായിക്കാൻ കഴിയില്ല, ഉപയോക്താവിനെ അവരുടെ ഇഷ്ടത്തിന് വിരുദ്ധമായി കണക്ട് ചെയ്ത് നിർത്താനും കഴിയില്ല.
ഉപയോക്താവ് ഉദ്ദേശിക്കുന്ന മൂന്ന് കാര്യങ്ങളിൽ നിന്ന് തുടങ്ങുക
API-കൾ വേർതിരിക്കുന്നതിന് മുമ്പ് അർത്ഥങ്ങൾ വേർതിരിക്കുക. ചിലപ്പോൾ ഉപയോക്താവ് നിങ്ങളുടെ ആപ്പിന്റെ ടണൽ കണക്ട് ചെയ്യാൻ ആഗ്രഹിക്കുന്നു, ചിലപ്പോൾ മറ്റൊരാൾ ഇൻസ്റ്റാൾ ചെയ്ത പ്രൊഫൈലിനായി സെറ്റിംഗ്സിലെ സ്വിച്ച് ഓൺ ചെയ്യാൻ ആഗ്രഹിക്കുന്നു, ചിലപ്പോൾ ടണൽ ഇല്ലാതെ ഫോണിൽ ബ്രൗസ് ചെയ്യാൻ കഴിയാതിരിക്കാൻ ആഗ്രഹിക്കുന്നു. ഇവ മൂന്ന് വ്യത്യസ്ത സംവിധാനങ്ങളുമായി യോജിക്കുന്നു, സാധാരണ ആപ്പിന് ആദ്യത്തേത് മാത്രം തുറന്നിരിക്കുന്നു.
രണ്ടാമത്തെ അർത്ഥമാണ് Stack Overflow ചോദ്യങ്ങൾ സൃഷ്ടിക്കുന്നത്, അതിന് പിന്തുണയുള്ള ഉത്തരമില്ല. സെറ്റിംഗ്സിലെ ടോഗിൾ ഉപയോക്താവിന്റേതാണ്, മാനേജ് ചെയ്ത ഉപകരണങ്ങളിൽ പ്രൊഫൈലിന്റേതും. ഏതെങ്കിലും പൊതു API VPN കോൺഫിഗറേഷനുകൾ ലിസ്റ്റ് ചെയ്യുന്നില്ല, സിസ്റ്റം ടണൽ ഓണാണോ എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നില്ല, അത് മാറ്റുന്നുമില്ല.
ഒരു ആപ്പിന് യഥാർത്ഥത്തിൽ സൃഷ്ടിക്കാൻ കഴിയുന്നത്
NetworkExtension NEVPNManager വഴി ആപ്പിന് അതിന്റേതായ കോൺഫിഗറേഷൻ നൽകുന്നു. Personal VPN അവകാശവും ഉപയോക്താവിന്റെ സമ്മതവും ഉണ്ടെങ്കിൽ, സെറ്റിംഗ്സിൽ സ്വന്തം പേരിൽ കാണുന്ന കോൺഫിഗറേഷൻ ആപ്പ് സംരക്ഷിക്കുന്നു, ആ ഒരു കണക്ഷൻ ആരംഭിക്കാനോ നിർത്താനോ കഴിയും. ഇത് യഥാർത്ഥവും അവലോകനം ചെയ്യാവുന്നതുമായ കഴിവാണ്, അത് മുഴുവൻ പരിധിയുമാണ്: മാനേജർ താൻ സൃഷ്ടിച്ചത് മാത്രം വായിക്കുകയും എഴുതുകയും ചെയ്യുന്നു.
അവകാശം സ്വയമേവയല്ല. നിങ്ങൾ അത് Apple-നോട് ആവശ്യപ്പെടുകയും ആപ്പിന് ടണൽ എന്തിനാണ് വേണ്ടതെന്ന് ന്യായീകരിക്കുകയും ചെയ്യുന്നു, മറ്റൊരാളുടെ പ്രൊഫൈൽ ഓൺ ചെയ്യുക മാത്രം ലക്ഷ്യമിടുന്ന ക്ലയന്റിന് നല്ല ഉത്തരമില്ല. പാക്കറ്റ് ടണൽ ദാതാക്കൾ അതേ നിയമം മറ്റൊരു ക്ലാസുമായി പിന്തുടരുന്നു: NETunnelProviderManager ആപ്പ് തന്നെ ഇൻസ്റ്റാൾ ചെയ്ത ദാതാവ് അധിഷ്ഠിത കോൺഫിഗറേഷനുകൾ കൈവശം വയ്ക്കുന്നു. രണ്ട് വഴികളിലും MDM നൽകിയ പ്രൊഫൈലിൽ എത്തുന്നില്ല.
സമ്മതം സംരക്ഷിക്കുന്ന സമയത്തും ബാധകമാണ്. കോൺഫിഗറേഷൻ എഴുതുമ്പോൾ ഉപയോക്താവിനോട് ചോദിക്കുന്നു, ഈ ചോദ്യം സൗകര്യത്തിനായി ആപ്പിന് അടിച്ചമർത്താൻ കഴിയുന്നതല്ല.
അവസ്ഥ വായിക്കുന്നതും അതേ ഭിത്തിയിൽ ഇടിക്കുന്നു
അവസ്ഥ നിയന്ത്രണത്തെക്കാൾ സൗഹൃദപരമായി തോന്നുന്നു, അത്രതന്നെ അടച്ചിരിക്കുന്നു. ആപ്പിന്റെ സ്വന്തം കോൺഫിഗറേഷനായി NEVPNStatus അസാധുവ്, വിച്ഛേദിച്ചു, കണക്ട് ചെയ്യുന്നു, കണക്ട് ചെയ്തു, വീണ്ടും സ്ഥിരീകരിക്കുന്നു അല്ലെങ്കിൽ വിച്ഛേദിക്കുന്നു എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു, ഓരോ മാറ്റത്തിനും അറിയിപ്പ് ഉണ്ടാകുന്നു. മാനേജ്മെന്റ് പ്രൊഫൈൽ ഇൻസ്റ്റാൾ ചെയ്ത ടണലിനെക്കുറിച്ച് അത് ഒന്നും പറയുന്നില്ല, ഹെൽപ്പ് ഡെസ്ക് യഥാർത്ഥത്തിൽ കാണാൻ ആഗ്രഹിക്കുന്ന അവസ്ഥ അതാണ്.
നെറ്റ്വർക്ക് പാത്ത് നിരീക്ഷണവും ഇന്റർഫേസ് മാറ്റങ്ങളും ഡിസൈൻ അവലോകനങ്ങളിൽ പകരമായി നിർദ്ദേശിക്കപ്പെടുന്നു. അവ ആപ്പിന്റെ ട്രാഫിക് പോകുന്ന പാത വിവരിക്കുന്നു, അത് VPN അവസ്ഥയുമായി ബന്ധമില്ലാത്ത കാരണങ്ങളാൽ മാറുന്നു, അവയെ VPN റീഡാഉട്ടായി ഉപയോഗിക്കുന്നത് ഇരു ദിശകളിലും കള്ളം പറയുന്ന UI നൽകുന്നു.
On Demand-ഉം Always On-ഉം യഥാർത്ഥ ലിവറുകളാണ്
പിന്തുണയുള്ള ലിവറുകൾ ആപ്പിലല്ല, പ്രൊഫൈലിലാണ് ജീവിക്കുന്നത്. On Demand നിയമങ്ങൾ എപ്പോൾ കണക്ട് ചെയ്യണമെന്ന് സിസ്റ്റത്തോട് പറയുന്നു: പ്രവർത്തനങ്ങളോടുകൂടിയ വ്യവസ്ഥകളുടെ ക്രമപ്പെടുത്തിയ പട്ടിക, നിങ്ങളുടെ കോഡല്ല, ഓപ്പറേറ്റിംഗ് സിസ്റ്റമാണ് വിലയിരുത്തുന്നത്. ഏതെങ്കിലും ഇന്റർഫേസിൽ കണക്ട് ചെയ്യുന്ന നിയമം ഒരു ആപ്പിനും നിയന്ത്രണം നൽകാതെ എപ്പോഴും-കണക്ട് എന്ന തോന്നൽ സൃഷ്ടിക്കുന്നു.
Always On VPN നിർബന്ധിത സംവിധാനമാണ്, അത് മേൽനോട്ടവുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. മേൽനോട്ടത്തിലുള്ള ഉപകരണത്തിൽ MDM ടണൽ ഓൺ നിർത്തുന്ന പ്രൊഫൈൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നു; മേൽനോട്ടമില്ലാത്ത സ്വകാര്യ ഫോണിൽ അതേ കീകൾ അതേ സ്വഭാവം നൽകുന്നില്ല. ആ അസമത്വം ബോധപൂർവമാണ്, പേലോഡ് കീകളുടെ ഏതെങ്കിലും സംയോജനം അത് നീക്കുന്നില്ല. VPN ഓണായിരിക്കണം എന്നതാണ് യഥാർത്ഥ ആവശ്യമെങ്കിൽ, ആവശ്യം യഥാർത്ഥത്തിൽ ഉപകരണം മാനേജ് ചെയ്യപ്പെടണം എന്നതാണ്.
ഇവയ്ക്കിടയിൽ ദുർബലനായ ബന്ധു ഇരിക്കുന്നു: ഉപയോക്താവ് വിച്ഛേദിച്ചതിന് ശേഷം വീണ്ടും കണക്ട് ചെയ്യുന്ന നിയമം. നിയമം അടുത്ത തവണ വിലയിരുത്തുമ്പോൾ അത് വീണ്ടും കണക്ട് ചെയ്യുന്നു, അത് ഉടനടി എന്നതിന് തുല്യമല്ല, ബോധപൂർവം വിച്ഛേദിച്ച ഉപയോക്താവ് വ്യത്യാസം ശ്രദ്ധിക്കും. പൂട്ട് വാഗ്ദാനം ചെയ്യുന്നതിന് പകരം ആ വിടവിന് ചുറ്റും ഇന്റർഫേസ് രൂപകൽപ്പന ചെയ്യുക.
പിന്തുണയുള്ള പാത അയയ്ക്കുക
കോഡ് ഉണ്ടാകുന്നതിന് മുമ്പ് നാല് ചോദ്യങ്ങൾ സംവിധാനം തീരുമാനിക്കുന്നു: ഉപകരണം ആരുടേതാണ്, അത് മേൽനോട്ടത്തിലാണോ, ഏത് ക്ലയന്റാണ് ടണൽ അവസാനിപ്പിക്കുന്നത്, പ്രൊഫൈൽ എവിടെ നിന്ന് വരുന്നു. ഇവയിലൊന്ന് അജ്ഞാതമാണെങ്കിൽ, ഫീച്ചർ അഭ്യർത്ഥന കണക്കാക്കാൻ തയ്യാറല്ല.
സിസ്റ്റം VPN-ൽ കൈയിടുന്ന സ്വകാര്യ API ഡെമോ പാസാകും, അവലോകനത്തിൽ പരാജയപ്പെടും, മറ്റൊരു വഴിക്ക് അയച്ചാൽ അടുത്ത iOS റിലീസിൽ തകരും. ഒരു സ്വിച്ചിനായി ആ കൈമാറ്റത്തിന്റെ ഏതെങ്കിലും പതിപ്പ് യോഗ്യമല്ല.
മാനേജ്മെന്റ് ടെലിമെട്രി വേറിട്ട ചാനലാണ്: പ്രൊഫൈൽ ഇൻസ്റ്റാൾ ചെയ്തുവെന്നും ഉപകരണം അനുസരിക്കുന്നുണ്ടോ എന്നും അത് റിപ്പോർട്ട് ചെയ്യുന്നു, അത് റിപ്പോർട്ടിംഗാണ്, ഓരോ ആപ്പിനുമുള്ള നിയന്ത്രണ ഉപരിതലമല്ല. ഓരോ അപ്ഡേറ്റിനും ശേഷം യഥാർത്ഥ ഉപകരണത്തിൽ പ്രവാഹം പരിശോധിക്കുക, കാരണം പിന്തുണയുള്ള സ്വഭാവം OS-ൽ ജീവിക്കുന്നു, OS ചലിക്കുന്നു.