L-istat ta' NEVPNManager mhuwiex validu sakemm jitgħabbew il-preferenzi
Aqra l-istat jew issalva qabel ma jispiċċa loadFromPreferences jagħti riżultati qodma jew falluti. L-ordni tat-tagħbija, ir-referenzi tal-keychain u l-gruppi ta' aċċess jiddeċiedu dan.
Erġa' ibda l-app, staqsi lill-maniġer dwar l-istat tal-konnessjoni, u jirrapporta skonnettjat waqt li l-menu tas-sistema juri b'mod ċar tunnel ħaj. Jew sejħa ta' salvataġġ tirritorna żball li ma jispjega xejn, jew sigriet komuni jiġi ddikjarat nieqes sekondi wara li jiġi assenjat. Tliet sintomi, mekkaniżmu wieħed: il-maniġer huwa vista fuq maħżen tas-sistema, u vista tinqara vojta sakemm xi ħadd jgħabbiha.
Qabel ma tiddebja xi ħaġa minn dan, iddeċiedi liema API suppost tuża. Tunnel IPsec jew IKEv2 tas-sistema jaqbel mal-maniġer inkorporat; protokoll li s-sistema ma timplimentax jeħtieġ fornitur ta' tunnel bil-manipulazzjoni tal-pakketti tiegħek stess, u l-ebda kombinazzjoni ta' oqsma ma tibdel dan.
Il-maniġer huwa vista fuq maħżen
Oħloq jew ġib il-maniġer, itolbu jgħabbi l-preferenzi tiegħu u ħalli l-handler ta' tlestija jispiċċa qabel taqra l-istat jew tibdel is-settings tal-protokoll. Meta x-xogħol ikun li telenka konfigurazzjonijiet salvati, uża s-sejħa tal-varjanti kollha minflok terġa' tuża istanza waħda għal żewġ skopijiet. Qabel ma tasal it-tagħbija, l-istat normalment mhuwiex validu, u l-konverżjoni ta' mhux validu għal mitfi hija eżattament il-bug li jagħmel app tidher ħażina biss wara li terġa' tibda.
Il-kitba ssegwi l-istess ordni. Salvataġġ fuq maniġer li qatt ma għabba xejn jista' jfalli mingħajr messaġġ utli, għax m'hemmx identità maħżuna li l-bidla tiġi applikata fuqha. Għabbi, ibdel, issalva, imbagħad erġa' aqra l-istat. L-oġġett li s-sistema tikkonnettja huwa l-profil salvat, mhux dak li kont qed teditja fil-memorja.
Bidliet fl-istat jaslu biss waqt li tkun qed tħares
Ladarba l-preferenzi jkunu għobbew, l-istat jgħaddi minn skonnettjat, qed jikkonnettja, konness, jerġa' jikkonferma u jiskonnettja. Inizjalizza l-interface minn qari wieħed, imbagħad isma' n-notifika tal-bidla minflok ma tagħmel polling b'timer. Il-polling taħdem fil-foreground u tgħid il-gideb fil-background, u hekk l-apps jispiċċaw b'spinner li qatt ma jiġi solvut.
In-notifiki jaslu biss waqt li l-app tkun fil-foreground. Kull ħaġa li żżomm l-istat fil-background tidher qadima wara li terġa' tibda, għalhekk aġġorna mal-bidu u għal darb'oħra meta l-app terġa' lura fil-foreground. Jekk fornitur ikollu t-tunnel, immexxih permezz tal-oġġett tas-sessjoni li jaqbel; il-proprjetà tal-konnessjoni sempliċi ma timmudellax iċ-ċiklu tal-ħajja tal-fornitur.
Is-sigrieti huma referenzi, mhux strings
Rapport li sigriet komuni jinsab nieqes rari jfisser li ħadd ma assenja wieħed. L-oġġett tal-protokoll irid referenza: waħda għall-password tal-utent u waħda għall-key pre-shared tal-IPsec. Li tgħaddi nil, jew referenza derivata mill-entrata tal-keychain ħażina, tagħti l-istess ilment bħal slot vojt. L-iżball isemmi s-sintomu u jaħbi l-kawża, u għalhekk in-nies jerġgħu jdaħħlu l-istess sigriet diversi drabi.
L-ewwel ikteb is-sigriet bħala oġġett ta' password ġeneriku, imbagħad erġa' aqra referenza persistenti għalih. Referenza persistenti tgħix wara li terġa' tibda, differenti minn pointer fil-memorja, u hija r-rappreżentazzjoni li sserializza l-profil. Agħżel klassi ta' aċċessibilità li għadha tippermetti aċċess ladarba l-apparat jiġi sblukkat, inkella tunnel li jrid jerġa' jikkonnettja fuq skrin misblukkat jonqos fl-awtentikazzjoni b'sigriet kompletament validu.
L-estensjoni għandha l-vista tagħha tal-keychain
Estensjoni tan-netwerk hija proċess separat, għalhekk l-aċċess default tal-app għall-keychain ma jilhaqx. Agħti liż-żewġ miri l-istess grupp ta' aċċess għall-keychain fl-entitlements tagħhom, aħżen l-oġġett darba ġewwa dak il-grupp, u ħalli kull proċess jaqrah. Mingħajr il-grupp l-estensjoni ma ssib xejn u tirrapporta falliment ta' kredenzjali li l-app ma tistax tirriproduċi.
Jekk il-fornitur jiġi kkonfigurat permezz tal-oġġett tal-konfigurazzjoni tal-fornitur tiegħu, tinkorporax is-sigriet ukoll fl-app. Żewġ kopji jiddevjaw, u d-devjazzjoni tidher bħala kredenzjali ħżiena aktar milli bħala duplikazzjoni. Widget jew proċess ieħor li jirrapporta stat ieħor għandu l-istess spjegazzjoni: kull wieħed jeħtieġ il-grupp, u kull wieħed irid jgħabbi l-preferenzi qabel jaqra.
Qabbil l-API mal-protokoll
Il-maniġer inkorporat iġorr oġġetti tal-protokoll IPsec u IKEv2. Ma jsirx klijent SSL VPN ġeneriku permezz ta' oqsma addizzjonali, u profil li ma jaqbilx jista' jiġi salvat nadif u xorta qatt ma jikkonnettja. Iddeċiedi f'liema kategorija int qabel ma tinvestiga l-istat, għax bug fl-istat u protokoll mhux appoġġjat jidhru identiċi minn barra.
Għall-bidu li jmiss il-lista ta' kontroll hija qasira: għabbi l-preferenzi, aqra l-istat, żomm is-sottoskrizzjonijiet tal-bidliet fil-foreground, erġa' ibni r-referenzi mill-grupp kondiviż, u kkonferma li l-oġġett tal-protokoll jaqbel mal-API li implimentajt. Li tgħaddi minn dik il-lista jieħu minuta; li taħsebha tieħu wara nofsinhar sħiħ.