App ɗinka yana cewa an katse, sandar menu tana cewa an haɗa, kuma rafi a bayyane yake gudana. Wannan rata ba yanayin tsere ba ne da za ka gyara da sake gwadawa: app ɗin da tunel ɗin tsari ne daban-daban, kuma abin da kod ɗinka ke karantawa wani bayani ne da aka ajiye a cache na saitin da tsarin ke adanawa. Fuskar Personal VPN ta Apple API ce ta sarrafawa, ba hanyar bayanai ba, kuma yawancin halayenta na ban mamaki suna fitowa daga wannan gaskiya ɗaya. Ga abin da ke faruwa da gaske a ƙarƙashin kowace kira.

Abin manajan bayani ne da aka ajiye a cache, ba tunel ɗin ba

NETunnelProviderManager ana cika shi daga ma'ajiyar zaɓuka da tsarin ya mallaka, don haka kaddarorinsa ba su da ma'ana har sai loadFromPreferences ya kammala. Ka karanta connection.status kafin haka sai ka sami ƙima ta asali, wanda shine dalilin da ya sa sabuntawar yanayi ta farko bayan sake kunnawa ke bayar da rahoton an katse alhali tunel ɗin yana aiki. Ka fara lodawa, sannan ka karanta yanayi da saitin ka'ida daga mai kula da kammalawa ɗaya. Ka lura da canje-canje na baya ta hanyar NEVPNStatusDidChange maimakon yin tambayoyi akai-akai, kuma ka lura cewa sanarwar tana kunna ma haɗin da On Demand ya fara, inda babu wata kira ta app da za ta mayar da komai. Haka ma saitin ka'ida: ana karanta su daga saitin da aka loda, ba daga abin da app ɗin ya shigar ba.

Tunel ɗin kansa yana rayuwa a cikin tsarin mai bayarwa na Network Extension, don haka app ɗin na iya rasa yanayinsa ba tare da rasa haɗin ba. Duk abin da mu'amalar ke nunawa dole a sake gina shi daga manajan, ba a tuna shi daga zaman ƙarshe ba.

Tsarin farawa: ajiye, loda, sannan fara

Haɗin da ya dogara da mai bayarwa yana buƙatar matakai uku bisa tsari. Ka rubuta saitin mai bayarwa kuma ka kira saveToPreferences, ka loda manajan domin saitin da aka ajiye shine wanda kake riƙe, sannan ka fara ta NETunnelProviderSession.startVPNTunnel(). Idan ka tsallake ajiyar, farawar ba ta da abin da za ta ƙaddamar; idan ka loda kafin ajiyar, manajan har yanzu yana nuna tsohon saitin.

Ƙimar Boolean da startVPNTunnel ke mayarwa tana cewa kawai an karɓi buƙatar. Rashin nasara a matakin mai bayarwa yana zuwa daga baya a matsayin canjin yanayi zuwa an katse, wanda kake lura da shi ta sanarwar NEVPNStatusDidChange, kuma mai kula da sanarwar dole ya sake karanta connection.status bayan loadFromPreferences domin ƙimar da aka ajiye a cache na iya zama tsohuwa har yanzu. Rashin nasara a matakin buƙata yana dawowa nan take daga sifar kiran da ke jefawa, ko ta hanyar fitarwar kuskure ta startVPNTunnelAndReturnError:. Kod da ke ɗaukar ƙimar dawowa a matsayin sakamako yana ba da rahoton haɗin da ba a taɓa kafa ba. Wata gazawa ta shiru ita ce mai gano tarin mai bayarwa wanda bai dace da ƙarin da aka shigar ba: ana ƙi buƙatar, kuma babu abin da ke cikin saƙon da ke nuni ga mai gano. Idan mai gano ba daidai ba ne, buƙatar yawanci tana gazawa nan take, kafin wani layin log na mai bayarwa ya bayyana.

Sake loda zaɓuka bayan farawa shine abin da ke sa allon yanayi su yi daidai. Manajan ba ya tura maka sabon saiti idan tsarin ya canza shi.

Kayan amana suna zuwa ta hanyar bayanin martaba, ba daga kod ɗin app ba har abada

App ɗin ba shi da wata hanyar da aka tallafa don ƙara takardar shaidar tushe a ma'ajiyar amana ta iOS, don haka saitin Personal VPN zai iya nuni kawai ga kayan da na'urar ta riga ta amince da su: sarkar da bayanin martaba da aka shigar, sarrafa na'ura, ko CA da tsarin ya amince da ita saboda wasu dalilai suka kafa. App ɗin da ke ƙirƙirar CA ɗinsa a farkon kunnawa kuma yana tsammanin tsarin zai girmama shi zai kasa tabbatarwa a cikin mai bayarwa, inda mu'amalar app ɗin ba za ta iya ganin dalilin ba.

Ka ɗauki wannan iyaka a matsayin ƙuntataccen ƙira da yake, kuma ka aika gindin amana tare da bayanin martabar yin rajista. Ka ware tabbatar da asalin VPN daga shawarar amana, domin suna gazawa a wurare daban-daban kuma mutane daban-daban ne ke gyara su.

Ƙididdiga suna zuwa daga mu'amalar, ba daga API ɗin VPN ba

Manajan yana bayyana yanayi da saiti, kuma babu abin da ke ƙididdige baiti kowace tunel. Idan kana buƙatar lambobin amfani, ka kira getifaddrs() kuma ka karanta if_data don mu'amalar da ta dace: en0 don Wi-Fi, mu'amalar pdp_ip don wayar hannu, da na'urar utun don tunel ɗin kanta. Ƙididdigan utun suna bayanin rafin ciki kuma sun haɗa da ƙarin nauyin ka'ida.

Waɗannan lambobin ƙiyasi ne, ba lissafin kowace app ba, kuma suna sake saitawa idan an sake ƙirƙirar mu'amalar. Ka yi musu lakabi haka a cikin mu'amalar, in ba haka ba wani zai yi amfani da su wajen yi wa abokin ciniki lissafi. Idan kana buƙatar lambobi na kowace app, kana buƙatar wata hanya daban gaba ɗaya, ba ingantaccen karanta waɗannan filayen ba.

Tsaftacewa na cikin stopVPNTunnel ne, ba cikin ƙarewa ba

applicationWillTerminate yana ba ka 'yan daƙiƙa kafin tsarin ya iya kashe tsarin, wanda ba wuri ne abin dogaro don wargaza haɗi ba. Ka aika tsayarwa zuwa stopVPNTunnel() ko ka sarrafa shi a cikin kiran dawowa na tsayarwa na mai bayarwa, kuma ka riƙe mai gano manajan ko saitin da ka fara da shi domin tsayarwar ta nufi wannan haɗin maimakon kowane saiti a na'urar.

Ka ajiye wannan mai gano tare da bayanin martabar da yake nasa, tunda abin manajan ba ya rubuta wane saiti mai amfani ya zaɓa. Kuma ka tuna cewa haɗin da On Demand ya ɗaga ba shi da wata kira ta app a bayansa kwata-kwata, don haka allon yanayi har yanzu dole ya loda zaɓuka kafin ya zana komai.

Labarai masu alaƙa