Vörustjóri biður um hnapp sem kveikir á VPN fyrirtækisins, og beiðnin hljómar léttvæg. Á iOS er þetta ekki lítill eiginleiki; það stendur utan opinbera samningsins, og öll leið fram hjá annaðhvort fellur í yfirferð eða brotnar í næstu útgáfu. Farðu með beiðnina í gegnum það sem kerfið leyfir í raun, og hönnunin skrifar sig að mestu sjálf. Forrit getur átt VPN-stillingu og ræst hana. Forrit getur ekki náð í rofa kerfisins, getur ekki lesið stöðu sniðs sem það bjó ekki til, og getur ekki haldið notanda tengdum gegn vilja hans.

Byrjaðu á þremur hlutunum sem notandinn á við

Aðskildu merkingarnar áður en þú aðskilur API-in. Stundum vill notandinn að göngin í forritinu þínu séu tengd, stundum vill hann skipta um rofann í Stillingum fyrir snið sem einhver annar setti upp, og stundum vill hann að síminn geti ekki farið á netið án ganganna. Þetta samsvarar þremur mismunandi fyrirkomulögum, og aðeins hið fyrsta er opið venjulegu forriti.

Önnur merkingin er sú sem skapar Stack Overflow-spurningarnar, og hún hefur ekkert studd svar. Rofinn í Stillingum tilheyrir notandanum og, á stýrðum tækjum, sniðinu. Ekkert opið API telur upp VPN-stillingar, tilkynnir hvort göng kerfisins séu uppi eða skiptir um þau.

Hvað forrit getur raunverulega búið til

NetworkExtension gefur forriti sína eigin stillingu í gegnum NEVPNManager. Með Personal VPN-réttinum og samþykki notandans vistar forritið stillingu sem birtist í Stillingum undir eigin nafni, og það getur ræst eða stöðvað þá einu tengingu. Þetta er raunverulegur, yfirferðarhæfur eiginleiki, og það er líka allt umfangið: stjórnandinn les og skrifar aðeins það sem hann bjó sjálfur til.

Rétturinn er ekki sjálfvirkur. Þú biður Apple um hann og rökstyður hvers vegna forritið þarf göng yfirhöfuð, og viðskiptavinur sem hefur það eina markmið að kveikja á sniði einhvers annars hefur ekkert gott svar. Þjónustuveitendur pakkaganga fylgja sömu reglu með annan flokk: NETunnelProviderManager á snið sem byggja á þjónustuveitanda og forritið setti sjálft upp. Hvorug leiðin nær sniði sem MDM afhenti.

Samþykki gildir líka þegar vistað er. Að skrifa stillingu spyr notandann, og sú spurning er ekki eitthvað sem forrit má þagga niður til þæginda.

Að lesa stöðuna rekst á sama vegg

Staðan virðist vingjarnlegri en stjórnun og er jafnlokuð. NEVPNStatus tilkynnir ógilt, aftengt, tengist, tengt, endurstaðfestir eða aftengist fyrir eigin stillingu forritsins, og tilkynning fer af stað við hverja breytingu. Það segir ekkert um göng sem stýrisnið setti upp, og það er einmitt staðan sem þjónustuborð vill sjá.

Eftirlit með netleið og breytingar á viðmóti eru boðin sem staðgenglar í hönnunaryfirferðum. Þau lýsa leiðinni sem umferð forritsins fer, sem breytist af ástæðum sem tengjast ekki VPN-stöðu, og að nota þau sem VPN-lestur gefur viðmót sem lýgur í báðar áttir.

On Demand og Always On eru raunverulegu stangirnar

Studdu stangirnar lifa í sniðinu frekar en í forritinu. On Demand-reglur segja kerfinu hvenær á að tengjast: röðuð listi skilyrða með aðgerðum, metinn af stýrikerfinu, ekki af kóðanum þínum. Regla sem tengist á hvaða viðmóti sem er skapar tilfinningu fyrir sívirkri tengingu án þess að gefa neinu forriti stjórn.

Always On VPN er framfylgdarferlið, og það er bundið við eftirlit. Á eftirlitsskyldu tæki setur MDM upp snið sem heldur göngunum uppi; á persónulegum síma án eftirlits gefa sömu lyklar ekki sömu hegðun. Þessi ósamhverfa er viljandi, og engin samsetning af lyklum nothæfs farms fjarlægir hana. Þegar krafan er í raun sú að VPN verði að vera kveikt, er krafan í raun sú að stýra verði tækinu.

Á milli þeirra situr veikari frændi: regla sem tengist aftur eftir að notandinn aftengist. Hún tengist þegar reglan er metin næst, sem er ekki það sama og strax, og notandi sem aftengdi viljandi mun taka eftir muninum. Hannaðu viðmótið í kringum þetta bil í stað þess að lofa lás.

Sendu studdu leiðina

Fjórar spurningar ákvarða fyrirkomulagið áður en nokkur kóði er til: hver á tækið, hvort það sé eftirlitsskylt, hvaða biðlari lýkur göngunum og hvaðan sniðið kemur. Ef eitthvað af þessu er óþekkt er eiginleikabeiðnin ekki tilbúin til mats.

Einkaaðila-API sem fikar við VPN kerfisins mun standast kynningu og falla í yfirferð, og ef það er sent öðruvísi brotnar það í næstu iOS-útgáfu. Það er engin útgáfa af þeirri skiptingu sem er þess virði fyrir einn rofa.

Stjórnunartelemetría er sérstök rás: hún tilkynnir að snið sé uppsett og hvort tækið sé í samræmi, sem er skýrslugjöf en ekki stjórnflötur fyrir hvert forrit. Prófaðu flæðið á raunverulegu tæki eftir hverja uppfærslu, því studd hegðun lifir í stýrikerfinu og stýrikerfið hreyfist.

Tengdir greinar