NEVPNManager ma kaydiyo? Nidaamku waa soo dejinta, kicinta, kaydinta, isku xidhka
Koodhka 4 iyo koodhka 5 badanaa waxay ka dhigan yihiin in borofaylka la beddelay ka hor soo dejintiisa ama la kaydiyay isagoo dansan. Hagaaji nidaamka wicitaannada, ka dib hubi xaqa.
Laba koodh oo khalad ah ayaa sharraxaya inta badan isku dayga ugu horreeya ee Network Extension VPN ee iOS: NEVPNErrorDomain Code=4 iyo Code=5. Midna maaha cabasho server. Mid wuxuu soo baxaa marka abka wax u qoro shay aan waligiis laga akhrin diskiga, kan kalena marka qoraalka laftiisu guuldareysto, inta badan sababtoo ah borofaylka waa la kaydiyaa isagoo wali dansan. Labadaba waxaa lagu hagaajiyaa beddelka nidaamka afar wicitaan, ma aha taabashada halbeegyada IKEv2.
Marka hore soo dejiso, haddii kale kaydinta ma haysato wax ay la barbardhigto
Maareeyuhu wuxuu hayaa nuqul borofaylka la kaydiyay, shayga aad tafatirto maaha nuqulkaas ilaa aad akhrido. Marka hore wac loadFromPreferences, ku tafatir gudaha maareeyaha dhamaystirka, ka dib kaydi. Haddii aad ka boodo akhrinta, qaab-dhismeedku wuxuu arkaa ismaandhaaf u dhexeeya wuxuu haysto iyo waxa aad qorayso. Swift dhexdiisa qaabku waa isku mid tallaabo kasta, tallaabo kastana waxay leedahay closure u gaar ah:
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
}
}
Tunnel-ka ka bilaabista gudaha closure-ka kaydinta waa isla khaladkaas meel kale. Wuxuu shaqeeyaa ka hor intaan borofaylka dib loo akhrin, sidaas darteed wicitaanka bilowga wuxuu arkaa xaaladda aad dhistay ee ma aha xaaladda la kaydiyay. Closure-ka kaydintu wuxuu ku dhammaadaa loadFromPreferences labaad, oo kaliya maareeyahaas dhamaystirka ayaa wacaya startVPNTunnel.
Calanka kicintu waa qayb ka mid ah kaydinta
Borofayl la kaydiyay waa mid aan shaqayn ilaa la shido. Deji isEnabled = true isla qoraalkaas, haddii kalena borofaylku wuxuu ku dhacaa diskiga isagoo dansan oo startVPNTunnel wuu diidayaa xitaa haddii Dejinta muujiso habayn u eg mid dhamaystiran.
Tafatirka dibadda waa qaybta kale. Haddii isticmaaluhu wax ka beddelo Dejinta, ama qalabku u dhexeeyo shabakadaha, dib u akhri ka hor inta aadan aaminin qiyamka aad wali ku haysato xusuusta. Shaygu isbeddeladaas kuma fiirsado adiga. Nuqul duugoobay ayaa ah sida abku u qoro borofayl si aamusnaan ah u celiya tafatirka isticmaalaha. Laba goobood oo isku dhow waxay isla daqiiqaddaas keenaan dhibaato aamusan: xeerarka on-demand waa inay ahaadaan array shay xeer ah ee ma aha meel-faaruq bannaan, iyo disconnectOnSleep waa inuu ka tarjumaa habdhaqanka aad dooratay ee ma aha default la koobiyeeyay.
Kaliya laba borotokool ayaa diyaar u ah abka dhinac saddexaad
Network Extension wuxuu abka siiyaa IPsec iyo IKEv2. L2TP iyo PPTP waxay ku sii jiraan gudaha nidaamka, sidaas darteed abka u baahan ma heli karo, jawaabaha dhabta ahna waa albaab taageera IKEv2 ama borofayl habayn la maareeyo.
Aqoonsigu wuxuu raacaa isla qaabkaas. Geli furaha sirta Keychain oo gudbi tixraac joogto ah halkii aad ka gudbin lahayd xarigga. Tixraac eber ah waqti kaydinta badanaa waxay ka dhigan tahay in raadintu socotay ka hor inta aan shayga la qorin, ee ma aha in maareeyuhu jaban yahay.
Labaduba waa go'aanno naqshadeed ee ma aha xalal dhaqso ah. Abka furaha sirta ku hayaa doorbidkiisa gaarka ah wuxuu dooranayaa waddo uu qaab-dhismeedku aanu dhiirrigelin, guuldarada uu soo saaraana waxaa loo akhriyaa sida khalad kaydin.
Ka saar xaqa ka hor inta aadan dib u qorin koodhka
Marka loadFromPreferences uusan marnaba dib u wicin, sababta macquulka ah waa awood Network Extension maqan ama borofayl bixineed oo aan qaadin. Guuldaradaas way laalaadaa halkii ay khalad bixin lahayd, taasina waa sababta koodhka shaqeeya loogu dib qoro saacado. Hubi xaqa buildka la saxeexay ee aad rabto inaad dirto, sababtoo ah socodka simulator iyo kan qalabka way kala duwanaan karaan bartilmaameedka muhiimka ahna waa qalabka. Fur dejinta saxeexa bartilmaameedka oo xaqiiji in awood Network Extension ay ugu jirto buildkaas saxda ah.
Borofayl bixineed oo aan xaq lahayn wuxuu ku guuldareystaa si la mid ah qalabka, halka isla buildkaasi uu si caadi ah u soo dejin karo simulator. Tijaabi kaydka la saxeexay qalab dhab ah ka hor inta aadan dib u qorin nidaamka wicitaannada.
Fiiri isbeddelada xaaladda, ee ha fiirin mala-awaalka
Fiirso NEVPNStatusDidChangeNotification oo qor manager.connection.status tallaabo kasta ka dib. Xaalad aan marnaba ka bixin invalid waxay ka dhigan tahay borofaylka lama kaydin ama xaqa maqan. Xidhiidh gaara connecting oo marnaba isku xidhma wuxuu tilmaamaa soo jeedinta ama aqoonsiga, taasina waa baaritaan kale oo caddayn kale leh.
Xaqiiji in borofaylku ka muuqdo Dejinta, Guud, VPN, oo qor khaladka closure kasta. Labada xaqiiqo ayaa kala saara bug nidaamka iyo bug ogolaanshaha iyada oo aan la qiyaasin.