Status NEVPNManager tidak sah sehingga keutamaan dimuatkan
Membaca status atau menyimpan sebelum loadFromPreferences selesai memberi hasil lapuk atau gagal. Urutan muat, rujukan keychain dan kumpulan akses yang menentukannya.
Mulakan semula aplikasi, tanya pengurus tentang status sambungan, dan ia melaporkan terputus sedangkan menu sistem jelas menunjukkan terowong yang aktif. Atau panggilan simpan memulangkan ralat yang tidak menjelaskan apa-apa, atau rahsia kongsi diisytiharkan hilang beberapa saat selepas ia diberikan. Tiga gejala, satu mekanisme: pengurus ialah paparan ke atas stor sistem, dan paparan dibaca kosong sehingga seseorang memuatkannya.
Sebelum menyahpepijat mana-mana daripada ini, tentukan API yang sepatutnya anda gunakan. Terowong IPsec atau IKEv2 sistem sesuai dengan pengurus terbina dalam; protokol yang tidak dilaksanakan sistem memerlukan penyedia terowong dengan pengendalian paket anda sendiri, dan tiada gabungan medan mengubahnya.
Pengurus ialah paparan ke atas stor
Cipta atau ambil pengurus, minta ia memuatkan keutamaannya dan biarkan pengendali penyiapan selesai sebelum membaca status atau menukar tetapan protokol. Apabila tugasnya ialah menyenaraikan konfigurasi tersimpan, gunakan panggilan semua varian dan bukan menggunakan semula satu instans untuk dua tujuan. Sebelum muat tiba, status biasanya tidak sah, dan memetakan tidak sah kepada mati ialah tepat pepijat yang membuat aplikasi kelihatan salah hanya selepas dimulakan semula.
Penulisan mengikut urutan yang sama. Simpan yang dicuba pada pengurus yang tidak pernah memuatkan apa-apa boleh gagal tanpa mesej berguna, kerana tiada identiti tersimpan untuk perubahan itu dikenakan. Muat, ubah, simpan, kemudian baca status sekali lagi. Objek yang disambungkan sistem ialah profil tersimpan, bukan yang anda sunting dalam memori.
Perubahan status hanya tiba semasa anda memerhati
Setelah keutamaan dimuatkan, status bergerak melalui terputus, menyambung, bersambung, mengesahkan semula dan memutuskan. Mulakan antara muka daripada satu bacaan, kemudian dengar pemberitahuan perubahan dan bukan meninjau dengan pemasa. Peninjauan berfungsi di latar hadapan dan berbohong di latar belakang, dan begitulah aplikasi berakhir dengan pemutar yang tidak pernah selesai.
Pemberitahuan hanya tiba semasa aplikasi di latar hadapan. Apa-apa yang mengekalkan status di latar belakang akan kelihatan lapuk selepas dimulakan semula, jadi segarkan semasa pelancaran dan sekali lagi apabila aplikasi kembali ke latar hadapan. Jika penyedia memiliki terowong itu, kendalikannya melalui objek sesi yang sepadan; sifat sambungan biasa tidak memodelkan kitaran hayat penyedia.
Rahsia ialah rujukan, bukan rentetan
Laporan bahawa rahsia kongsi hilang jarang bermakna tiada siapa yang memberikannya. Objek protokol mahukan rujukan: satu untuk kata laluan pengguna dan satu untuk kunci pra-kongsi IPsec. Menghantar nil, atau rujukan yang diperoleh daripada entri keychain yang salah, memberikan aduan yang sama seperti slot kosong. Ralat menamakan gejala dan menyembunyikan punca, sebab itulah orang memasukkan semula rahsia yang sama beberapa kali.
Tulis rahsia sebagai item kata laluan generik dahulu, kemudian baca semula rujukan berterusan kepadanya. Rujukan berterusan bertahan selepas dimulakan semula, tidak seperti penuding dalam memori, dan itulah perwakilan yang disirikan oleh profil. Pilih kelas kebolehcapaian yang masih membenarkan akses selepas peranti dibuka kunci, jika tidak terowong yang perlu bersambung semula pada skrin berkunci akan gagal pengesahan dengan rahsia yang sah sepenuhnya.
Sambungan mempunyai paparan keychain sendiri
Sambungan rangkaian ialah proses berasingan, jadi akses keychain lalai aplikasi tidak mencapainya. Beri kedua-dua sasaran kumpulan akses keychain yang sama dalam hak mereka, simpan item itu sekali di dalam kumpulan itu, dan biarkan setiap proses membacanya. Tanpa kumpulan itu, sambungan tidak menemui apa-apa dan melaporkan kegagalan kelayakan yang tidak dapat dihasilkan semula oleh aplikasi.
Jika penyedia dikonfigurasikan melalui objek konfigurasi penyedianya, jangan juga membenamkan rahsia di dalam aplikasi. Dua salinan terpesong, dan pesongan itu kelihatan sebagai kelayakan buruk dan bukan sebagai pertindihan. Widget atau proses kedua yang melaporkan status lain mempunyai penjelasan yang sama: setiap satu memerlukan kumpulan itu, dan setiap satu perlu memuatkan keutamaan sebelum membaca.
Padankan API dengan protokol
Pengurus terbina dalam membawa objek protokol IPsec dan IKEv2. Ia tidak menjadi klien SSL VPN generik melalui medan tambahan, dan profil yang tidak sepadan boleh disimpan dengan bersih namun tetap tidak pernah bersambung. Tentukan kategori anda sebelum menyiasat status, kerana pepijat status dan protokol yang tidak disokong kelihatan sama dari luar.
Untuk pelancaran seterusnya, senarai semak itu pendek: muatkan keutamaan, baca status, kekalkan langganan perubahan di latar hadapan, bina semula rujukan daripada kumpulan kongsi, dan sahkan bahawa objek protokol sepadan dengan API yang anda laksanakan. Menjalankan senarai itu mengambil satu minit; menekanya mengambil satu petang.