Míníonn dhá chód earráide an chuid is mó de na chéad iarrachtaí ar VPN Network Extension ar iOS: NEVPNErrorDomain Code=4 agus Code=5. Ní gearán ón bhfreastalaí ceachtar acu. Tagann ceann amháin chun solais nuair a scríobhann an aip socruithe isteach in oibiacht nár léadh riamh ón diosca, agus an ceann eile nuair a theipeann ar an scríobh féin, go minic toisc go sábháiltear an phróifíl agus í fós díchumasaithe. Ceartaítear an dá cheann trí ord ceithre ghlao a athrú, ní trí na paraiméadair IKEv2 a bhaint.

Luchtaigh ar dtús, nó níl aon rud ag an sábháil le comparáid a dhéanamh leis

Coinníonn an bainisteoir cóip den phróifíl stóráilte, agus ní hé an oibiacht a chuireann tú in eagar an chóip sin go dtí go léann tú í. Glaoigh ar loadFromPreferences ar dtús, cuir in eagar laistigh dá láimhseálaí críochnaithe, ansin sábháil. Má scipeann tú an léamh, feiceann an creat neamhréireacht idir an rud atá aige agus an rud atá á scríobh agat. I Swift tá an chruth mar an gcéanna ag gach céim, agus baineann gach céim lena clósúr féin:

let mgr = NEVPNManager.shared()
mgr.loadFromPreferences { loadErr in
    guard loadErr == nil else { return }
    let proto = NEVPNProtocolIKEv2()
    proto.serverAddress = "vpn.example.net"
    proto.username = "alice"
    proto.useExtendedAuthentication = true
    mgr.protocolConfiguration = proto
    mgr.isEnabled = true
    mgr.saveToPreferences { saveErr in
        // do not start here; reload, then connect
    }
}

Is é an botún céanna in áit eile an tollán a thosú ón taobh istigh den chlósúr sábhála. Ritheann sé sula mbíonn an phróifíl léite arís, mar sin feiceann an glao tosaigh an staid a thóg tú agus ní an staid a sábháladh. Críochnaíonn clósúr na sábhála le dara loadFromPreferences, agus ní ghlaonn ach an láimhseálaí críochnaithe sin ar startVPNTunnel.

Tá an bhratach chumasaithigh mar chuid den sábháil

Tá próifíl stóráilte neamhghníomhach go dtí go gcuirtear ar siúl í. Socraigh isEnabled = true sa scríobh céanna, nó tagann an phróifíl ar an diosca díchumasaithe agus diúltaíonn startVPNTunnel fiú nuair a thaispeánann Socruithe cumraíocht a bhfuil cuma iomlán uirthi.

Is é an leath eile de seo eagarthóireacht sheachtrach. Má athraíonn an t-úsáideoir rud éigin i Socruithe, nó má ghluaiseann an gléas idir líonraí, léigh arís sula gcuireann tú muinín sna luachanna atá fós agat sa chuimhne. Ní thugann an oibiacht faoi deara na hathruithe sin ar do shon. Is éard is cóip shean ná an bealach a scríobhann aip próifíl a thugann eagarthóireacht an úsáideora ar ais go ciúin. Cuireann dhá réimse chomharsanacha trioblóid chiúin ar bun ag an nóiméad céanna: caithfidh rialacha on-demand a bheith ina n-eagar d’oibiachtaí rialach seachas ina n-áitseoir folamh, agus ba cheart go léireodh disconnectOnSleep an t-iompar a roghnaigh tú seachas réamhshocrú cóipeáilte.

Níl ach dhá phrótacal ar fáil d’aipeanna tríú páirtí

Tugann Network Extension IPsec agus IKEv2 d’aip. Fanann L2TP agus PPTP taobh istigh den chóras, mar sin ní féidir le haip a dteastaíonn siad iad a fháil, agus is iad na freagraí réalaíocha geata atá in ann IKEv2 nó próifíl chumraíochta bhainistithe.

Leanann dintiúir an patrún céanna. Cuir an focal faire sa Keychain agus cuir tagairt mharthanach ar aghaidh in ionad an tsreang. De ghnáth ciallaíonn tagairt neamhní ag am sábhála gur ritheadh an chuardach sular scríobhadh an mhír, ní go bhfuil an bainisteoir briste.

Is cinntí dearaidh iad an dá rud seachas bealaí timpeall. Roghnaíonn aip a choinníonn an focal faire ina roghanna féin bealach a dhíspreagann an creat, agus léitear an teip a tháirgeann sé mar earráid sábhála.

Cuir an ceart as an áireamh sula scríobhann tú cód arís

Nuair nach nglaonn loadFromPreferences ar ais ar chor ar bith, is é is dóichí ná cumas Network Extension atá ar iarraidh nó próifíl soláthair nach bhfuil sé ann. Crochann an teip sin in ionad earráid a thabhairt, agus is é sin an fáth a ndéantar cód atá ag obair a athscríobh ar feadh uaireanta. Seiceáil an ceart ar an mbuild sínithe a bhfuil tú chun é a sheachadadh, mar is féidir le rith i insamhlóir agus rith ar ghléas a bheith difriúil agus is é an gléas an sprioc atá tábhachtach. Oscail socruithe sínithe an sprioc agus deimhnigh go bhfuil an cumas Network Extension i láthair don bhluild chruinn sin.

Teipeann próifíl soláthair gan an ceart ar an gcóras céanna ar chrua-earraí, cé go bhféadfadh an build céanna lódáil go normálta san insamhlóir. Tástáil an chartlann shínithe ar ghléas fíor sula n-athscríobhann tú ord na nglaonna.

Breathnaigh ar na hathruithe stádais, ní ar na boinn tuisceana

Breathnaigh NEVPNStatusDidChangeNotification agus logáil manager.connection.status tar éis gach céime. Ciallaíonn stádas nach bhfágann invalid riamh nár stóráladh an phróifíl nó go bhfuil an ceart ar iarraidh. Díríonn nasc a shroicheann connecting agus nach gceanglaíonn riamh ar an togra nó ar na dintiúir, agus is imscrúdú difriúil é sin le fianaise dhifriúil.

Deimhnigh go bhfeictear an phróifíl faoi Socruithe, Ginearálta, VPN, agus taifead an earráid ó gach clósúr. Scarann an dá fhíric sin botún oird ó bhotún ceada gan buille faoi thuairim.

Ailt ghaolmhara