Lambobin kuskure biyu sun bayyana yawancin yunƙurin farko na VPN na Network Extension a iOS: NEVPNErrorDomain Code=4 da Code=5. Babu ɗayansu korafin uwar garke. Ɗaya yana bayyana lokacin da manhajar ke rubuta saituna cikin wani abu da ba a taɓa karanta shi daga faifai ba, ɗayan kuma lokacin da rubutun da kansa ya kasa, mafi yawan lokuta domin an ajiye bayanin ne yana nan a kashe. Ana gyara duka biyun ta hanyar canza tsarin kira huɗu, ba ta taɓa sigogin IKEv2 ba.

Fara loda, in ba haka ba ajiyar ba ta da abin kwatance

Mai sarrafawa yana riƙe da kwafin bayanin da aka ajiye, kuma abin da kuke gyara ba shine wannan kwafin ba har sai kun karanta shi. Fara kiran loadFromPreferences, gyara a cikin mai kula da kammalawa, sannan ajiye. Idan kun tsallake karatun, tsarin yana ganin rashin daidaituwa tsakanin abin da yake da shi da abin da kuke rubutawa. A cikin Swift siffar ɗaya ce ga kowane mataki, kuma kowane mataki yana cikin rufin sa:

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
    }
}

Fara ramin daga cikin rufin ajiya shine kuskure ɗaya a wani wuri. Yana gudana kafin a sake karanta bayanin, don haka kiran farawa yana ganin yanayin da kuka gina ba yanayin da aka ajiye ba. Rufin ajiya yana ƙare da loadFromPreferences na biyu, kuma wannan mai kula da kammalawa ne kaɗai ke kiran startVPNTunnel.

Tutar kunnawa ɓangare ne na ajiya

Bayanin da aka ajiye ba shi da tasiri har sai an kunna shi. Saita isEnabled = true a cikin rubutun ɗaya, in ba haka ba bayanin zai sauka a faifai a kashe kuma startVPNTunnel zai ƙi ko da Saituna suna nuna tsarin da ya bayyana cikakke.

Gyare-gyaren waje shine ɗayan rabin. Idan mai amfani ya canza wani abu a Saituna, ko na'urar ta motsa tsakanin cibiyoyin sadarwa, sake karantawa kafin ku amince da ƙimar da har yanzu kuke riƙe a ƙwaƙwalwa. Abin ba ya lura da waɗannan canje-canjen don ku. Tsohon kwafi shine yadda manhaja ke rubuta bayanin da ke mayar da gyaran mai amfani a hankali. Filaye biyu maƙwabta suna haifar da matsala a hankali a lokaci ɗaya: dokokin on-demand dole su zama jerin abubuwan doka ba fanko ba, kuma disconnectOnSleep ya kamata ya nuna halin da kuka zaɓa ba tsohuwar ƙima da aka kwafa ba.

Ka'idoji biyu ne kawai suke samuwa ga manhajoji na ɓangare na uku

Network Extension yana ba manhajoji IPsec da IKEv2. L2TP da PPTP suna zama cikin tsarin, don haka manhajar da ke buƙatar su ba za ta iya samun su ba, kuma amsoshi na gaskiya sune ƙofar da ke goyon bayan IKEv2 ko bayanin tsari da ake sarrafawa.

Takardun shaida suna bin irin wannan tsari. Saka kalmar sirri a cikin Keychain kuma ba da magana mai ɗorewa maimakon igiyar. Maganar da ba ta da komai lokacin ajiya yawanci tana nufin an gudanar da binciken kafin a rubuta abin, ba cewa mai sarrafawa ya lalace ba.

Dukansu shawarwarin ƙira ne ba hanyoyin kuɓuta ba. Manhajar da ke riƙe kalmar sirri a cikin zaɓinta tana zaɓar hanyar da tsarin ba ya ƙarfafawa, kuma gazawar da take haifarwa ana karanta ta a matsayin kuskuren ajiya.

Cire haƙƙin kafin sake rubuta lambar

Lokacin da loadFromPreferences ba ya dawowa kwata-kwata, dalilin da ya fi yiwuwa shine rashin ƙarfin Network Extension ko bayanin tanadi wanda ba ya ɗauke shi. Wannan gazawar tana rataye maimakon ba da kuskure, kuma shi ya sa ake sake rubuta lambar da ke aiki na sa'o'i. Duba haƙƙin a kan ginannen da aka sa hannu da kuke son aikawa, domin gudu a simulator da gudu a na'ura na iya bambanta kuma makasudin da ke da muhimmanci shine na'urar. Buɗe saitunan sa hannu na makasudin kuma tabbatar ƙarfin Network Extension yana nan don wannan ginannen takamaimai.

Bayanin tanadi marar haƙƙi yana kasa haka a kan kayan aiki, yayin da wannan ginannen zai iya lodawa normal a simulator. Gwada rumbun da aka sa hannu a na'ura ta gaske kafin sake rubuta tsarin kira.

Kula da canje-canjen matsayi, ba zato ba

Kula da NEVPNStatusDidChangeNotification kuma rubuta manager.connection.status bayan kowane mataki. Matsayin da ba ya fita daga invalid yana nufin ba a ajiye bayanin ba ko haƙƙin babu. Haɗin da ya isa connecting kuma ba ya haɗawa yana nuni ga shawara ko takardun shaida, wanda wani bincike ne da wata shaida.

Tabbatar bayanin ya bayyana a ƙarƙashin Saituna, Gaba ɗaya, VPN, kuma rubuta kuskuren kowane rufi. Waɗannan gaskiyoyi biyu sun raba kuskuren tsari da kuskuren izini ba tare da zato ba.

Labarai masu alaƙa