Mahsulot menejeri kompaniya VPN ini yoqadigan tugma so'raydi, va so'rov oddiy ko'rinadi. iOS da bu kichik funksiya emas; u ommaviy shartnomadan tashqarida, va har bir chetlab o'tish yo tekshiruvdan o'tmaydi yo keyingi versiyada buziladi. So'rovni platforma haqiqatan ruxsat beradigan narsalar orqali o'tkazing, va dizayn asosan o'zini yozadi. Ilova VPN konfiguratsiyasiga ega bo'lishi va uni ishga tushirishi mumkin. Ilova tizim o'chirgichiga yetib bora olmaydi, o'zi yaratmagan profilning holatini o'qiy olmaydi, va foydalanuvchini uning xohishiga qarshi ulangan holda ushlab tura olmaydi.

Foydalanuvchi nazarda tutgan uchta narsadan boshlang

API larni ajratishdan oldin ma'nolarni ajrating. Ba'zan foydalanuvchi ilovangiz tunnelining ulangan bo'lishini xohlaydi, ba'zan boshqa birov o'rnatgan profil uchun Sozlamalardagi o'chirgichni yoqishni xohlaydi, ba'zan esa telefon tunnelsiz ko'rish imkoniga ega bo'lmasligini xohlaydi. Bular uch xil mexanizmga to'g'ri keladi, va faqat birinchisi oddiy ilova uchun ochiq.

Ikkinchi ma'no Stack Overflow savollarini tug'diradigan ma'nodir, va uning qo'llab-quvvatlanadigan javobi yo'q. Sozlamalardagi o'chirgich foydalanuvchiga, boshqariladigan qurilmalarda esa profilga tegishli. Hech bir ommaviy API VPN konfiguratsiyalarini sanab o'tmaydi, tizim tunnelining yoqilganligini xabar qilmaydi va uni almashtirmaydi.

Ilova haqiqatan nima yaratishi mumkin

NetworkExtension ilovaga NEVPNManager orqali o'z konfiguratsiyasini beradi. Personal VPN huquqi va foydalanuvchining roziligi bilan ilova Sozlamalarda o'z nomi bilan ko'rinadigan konfiguratsiyani saqlaydi, va o'sha bitta ulanishni boshlashi yoki to'xtatishi mumkin. Bu haqiqiy va tekshiriladigan imkoniyat, va bu ham butun qamrov: menejer faqat o'zi yaratgan narsani o'qiydi va yozadi.

Huquq avtomatik emas. Siz uni Apple dan so'raysiz va ilovaga tunnel nega kerakligini asoslaysiz, va yagona maqsadi birovning profilini yoqish bo'lgan mijozning yaxshi javobi yo'q. Paket tunnel provayderlari xuddi shu qoidaga boshqa sinf bilan amal qiladi: NETunnelProviderManager ilova o'zi o'rnatgan provayderga asoslangan konfiguratsiyalarga ega. Ikkala yo'lning hech biri MDM yetkazgan profilga yetib bormaydi.

Rozilik saqlash vaqtida ham amal qiladi. Konfiguratsiya yozish foydalanuvchidan so'raydi, va bu so'rov qulaylik uchun ilova bostirishi mumkin bo'lgan narsa emas.

Holatni o'qish ham xuddi shu devorga uriladi

Holat boshqarishdan ko'ra do'stona ko'rinadi va xuddi shunday yopiq. NEVPNStatus ilovaning o'z konfiguratsiyasi uchun yaroqsiz, uzilgan, ulanmoqda, ulangan, qayta tasdiqlamoqda yoki uzilmoqda deb xabar beradi, va har bir o'zgarishda bildirishnoma chiqadi. U boshqaruv profili o'rnatgan tunnel haqida hech narsa demaydi, va yordam stoli haqiqatan ko'rishni istagan holat aynan shu.

Tarmoq yo'lini kuzatish va interfeys o'zgarishlari dizayn ko'riklorida o'rinbosar sifatida taklif qilinadi. Ular ilova trafigi bosib o'tadigan yo'lni tavsiflaydi, u VPN holatiga aloqasiz sabablarga ko'ra o'zgaradi, va ularni VPN ko'rsatkichi sifatida ishlatish ikki tomonga yolg'on gapiradigan UI beradi.

On Demand va Always On haqiqiy richaglardir

Qo'llab-quvvatlanadigan richaglar ilovada emas, profilda yashaydi. On Demand qoidalari tizimga qachon ulanishni aytadi: amallar bilan shartlarning tartiblangan ro'yxati, uni sizning kodingiz emas, operatsion tizim baholaydi. Har qanday interfeysda ulanadigan qoida hech bir ilovaga boshqaruv bermasdan doim ulangan hissini yaratadi.

Always On VPN majburlash mexanizmi, va u nazoratga bog'langan. Nazorat ostidagi qurilmada MDM tunnelni ushlab turadigan profil o'rnatadi; nazoratsiz shaxsiy telefonda bir xil kalitlar bir xil xatti-harakatni bermaydi. Bu assimetriya qasddan, va yuk kalitlarining hech bir kombinatsiyasi uni yo'q qilmaydi. Talab haqiqatan VPN yoqilgan bo'lishi kerakligi bo'lsa, talab aslida qurilma boshqarilishi kerakligidir.

Ikkalasining o'rtasida zaifroq qarindosh o'tiradi: foydalanuvchi uzgandan keyin qayta ulanadigan qoida. Qoida keyingi marta baholanganda qayta ulanadi, bu darhol degani bilan bir xil emas, va ataylab uzgan foydalanuvchi farqni sezadi. Qulf va'da qilish o'rniga interfeysni o'sha bo'shliq atrofida loyihalang.

Qo'llab-quvvatlanadigan yo'lni yuboring

Har qanday kod paydo bo'lishidan oldin to'rt savol mexanizmni hal qiladi: qurilma kimniki, u nazorat ostidami, qaysi mijoz tunnelni tugatadi va profil qayerdan keladi. Agar shulardan biri noma'lum bo'lsa, funksiya so'rovi baholashga tayyor emas.

Tizim VPN iga tegadigan maxfiy API demo dan o'tadi va ko'rikda yiqiladi, agar boshqa yo'l bilan yuborilsa keyingi iOS versiyasida buziladi. Bitta o'chirgich uchun bu almashinuvning qadrli versiyasi yo'q.

Boshqaruv telemetriyasi alohida kanal: profil o'rnatilganini va qurilma muvofiqligini xabar qiladi, bu hisobot, har bir ilova uchun boshqaruv yuzasi emas. Har yangilanishdan keyin oqimni haqiqiy qurilmada sinab ko'ring, chunki qo'llab-quvvatlanadigan xatti-harakat OS da yashaydi va OS harakatlanadi.

O'xshash maqolalar