Сиз профиль орнотосуз, туннель көтөрүлөт жана баары бүткөндөй көрүнөт. Андан кийин телефон кайра жүктөлөт, on-demand алдыңкы планда колдонмосуз байланышты ойготот, ал эми туннель башталуудан баш тартат. Профиль дагы эле бар жана сырсөз дагы эле туура, ошондуктан бул бузулуу адамдарды туура эмес жерден издөөгө жиберет. Network Extension сырыңызды профилден окуй албайт: ага өзү чече алган ачкычтар шакегине шилтеме керек.

Төмөнкү жол көрсөтмө ушул өткөрүү аркылуу бир байланыш аракетин көзөмөлдөйт: шилтемени куруучу сурамдан аны сынаган кайра жүктөөгө чейин.

Профиль сырды эмес, тутканы сактайт

NEVPNProtocol passwordReference менен sharedSecretReference-ти текке ачпайт. Демон туннелди баштаганда ал сиздин процессиңиздин ичинде иштебеши мүмкүн, ошондуктан сиздин кодду чакырып сырсөз сурай албайт. Ал ачкычтар шакегине туруктуу шилтемени окуп, аны өз контекстинде чечет жана элементти өзү алат.

Сиз бул шилтемени ачкычтар шакегинен сурап курасыз, бул маалыматтарды суроодон башка сурам:

let query: [String: Any] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrService as String: "vpn-credentials",
  kSecAttrAccount as String: "user",
  kSecReturnPersistentRef as String: true,
  kSecMatchLimit as String: kSecMatchLimitOne
]

Кайтарылган объектини протоколго бериңиз, элементтин маалыматтарын эмес. Иш жүзүндө профиль сыр кайда жашайт экенин жазат, ошондуктан конфигурациянын камдык көчүрмөсү сырсөздү plist-ке унчукпай көчүрбөйт.

API эмне үчүн -50 деп жооп берет

errSecParam сурам же маани ушул операция үчүн туура эмес түзүлгөнүн билдирет жана шилтеме менен маалымат сурамдары аралашканда бул ката көп көрүнөт. Кабыл алуучу код шилтемени күтүп турганда маалымат суроо, passwordReference-ке чийки байттарды бекитүү же колдонмо пайдалана албаган кирүү тобу менен суроо — баары аны жаратат.

Каптоочу китепканалар буга чакырат. Байттарды кайтарган жардамчы шилтеме кайтарган жардамчы менен алмаштырылбайт, ошондуктан оңдоо адатта башка сырсөз эмес, башка сурам.

Ошол эле шайкешсиздик нааразылыксыз сакталып, кийин туташа албаган профилди түшүндүрөт: сакталганы blob, тутка эмес, ал эми демондун чечериндей эч нерсе жок.

Жакшы сакталат, туташуу учурунда ийгиликсиз

Сактоо колдонмосуңуздун контекстин машыктырат. Туташуу демондукун машыктырат, ал эми экөөнүн кирүү укугу бирдей эмес. Ошондуктан профиль симулятордогу бардык сынактардан өтүп, биринчи on-demand баштоодо ийгиликсиз болушу мүмкүн.

Кайра жүктөө симптомунун формасы да ушундай: колдонмо ачык турганда иштейт, ал эми система туннелди өзү баштаганда өлөт.

Жөнөтүүдөн мурун фондук жолду атайын сынап көрүңүз. Колдонмо жабык турганда on-demand байланышын козгоп, анан колдонмонун журналын эмес, түзмөктүн консолун окуңуз, анткени бузулууну шилтемени чечүүгө аракет кылган процесс жазат. Эгер консоль демон элементти четке кагып жатканын көрсөтсө, шилтеме туура жана маселе элементтин жеткиликтүүлүгүндө.

Кайра жүктөө иштейби, аны жеткиликтүүлүк чечет

Элемент туннелди баштаган ар кандай система процесси үчүн окула турган болушу керек, ал эми бул колдонмо алдыңкы планда тургандагыдан кененирээк аудитория. Ошол чектөө жеткиликтүүлүк атрибутун сиз үчүн тандайт. Биринчи ачууга чейин корголгон элемент түзмөк бир жолу ачылгандан кийин фондук баштоого жеткиликтүү; түзмөктүн дал азыр ачык болушун талап кылган элемент андай эмес.

Кыйыныраак классты тандоо азгырат жана дал ошол кулпуланган телефондо on-demand профилди бузат.

Классты өзгөрткөндөн кийин бар элементтин атрибуттарын оңдоонун ордуна элементти кайра түзүңүз, анан протоколду жаңы шилтеме менен кайра сактаңыз. Бар элементтеги атрибут өзгөртүүлөрү документтер кыйыр түрдө айткан жүрүм-турумду ар дайым бербейт, ал эми кайра курулган элемент шектенүүнү жок кылат.

Айландыруу — сакталган профилдер чирий турган жер

Ачкычтар шакегиндеги сырсөздү өзгөртүү сакталган профиль эмнени көрсөткөнүн автоматтык түрдө өзгөртпөйт. Элементти жок кылуу андан жаман: профиль мындан ары жок нерсеге шилтеме кармайт, ал эми бузулуу аутентификациядан баш тартууга окшош көрүнөт.

Бир тартипте айландырыңыз. Элементти жаңыртыңыз, жаңы туруктуу шилтемени сураңыз, протоколду кайра сактаңыз, анан колдонмо жабык турганда туташып, демон аны дагы эле чече аларын далилдеңиз. Колдонуучунун сырсөзү менен жалпы сырды өзүнчө элементтерде кармаңыз, ошондо ар бири өз графиги менен айланат, жана сурам сөздүгүн же шилтеменин өзүн эч качан журналга жазбаңыз. Тутка сыр эмес, бирок ага алып баруучу карта.

Тектеш макалалар