دوه د خطا کوډونه په iOS کې د Network Extension VPN لپاره د لومړنیو هڅو ډېره برخه تشریح کوي: NEVPNErrorDomain Code=4 او Code=5۔ هیڅ یو یې د سرور شکایت نه دی۔ یو هغه وخت ښکاري چې اپلیکیشن په داسې شی کې تنظیمات لیکي چې هېڅکله له ډیسک څخه نه وي لوستل شوی، او بل هغه وخت چې لیکنه پخپله ناکامه شي، ډېری وختونه ځکه چې پروفایل لا هم غیر فعال وي او خوندي کېږي۔ دواړه د څلورو کالونو د ترتیب په بدلولو سمېږي، نه د IKEv2 پارامترونو په لمس کولو۔

لومړی لود کړئ، که نه نو د خوندي کولو لپاره د پرتله کولو څه نشته

مدیر د خوندي شوي پروفایل یوه کاپي ساتي، او هغه شی چې تاسو یې سمولئ تر هغه پورې هغه کاپي نه ده چې تاسو یې ولولئ۔ لومړی loadFromPreferences وبلئ، د هغې د بشپړېدو په هندلر کې سمول وکړئ، بیا خوندي کړئ۔ که لوستل پریږدئ، چوکاټ د هغه څه او ستاسو د لیکل شوي ترمنځ ناسمون ویني۔ په Swift کې د هر ګام بڼه یوه ده، او هر ګام خپل closure ته اړوند دی:

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
    }
}

د خوندي کولو closure له دننه تونل پیلول په بل ځای کې هغه هماغه تېروتنه ده۔ دا د پروفایل له بیا لوستلو مخکې چلیږي، نو د پیل کال هغه حالت ویني چې تاسو جوړ کړی، نه هغه حالت چې خوندي شوی۔ د خوندي کولو closure د دویم loadFromPreferences سره پای ته رسېږي، او یوازې هماغه د بشپړېدو هندلر startVPNTunnel بولي۔

د فعالولو بیرغ د خوندي کولو برخه ده

خوندي شوی پروفایل تر هغه پورې غیر فعال دی چې روښانه شي۔ isEnabled = true په هماغه لیکنه کې وټاکئ، که نه نو پروفایل غیر فعال ډیسک ته رسېږي او startVPNTunnel انکار کوي، حتی که تنظیمات بشپړ ښکاره کوونکی ترتیبات وښيي۔

بهرني سمونې بله نیمه ده۔ که کاروونکی په تنظیماتو کې څه بدل کړي، یا وسیله د شبکو ترمنځ وګرځي، بیا لوستل وکړئ مخکې له دې چې په حافظه کې ساتل شوو ارزښتونو باور وکړئ۔ شی هغه بدلونونه ستاسو لپاره نه څاري۔ زړه کاپي هغه لاره ده چې اپلیکیشن داسې پروفایل لیکي چې د کاروونکي سمون په آرامۍ سره بیرته راګرځوي۔ دوه څنګ په څنګ فیلډونه په هماغه شېبه کې آرامه ستونزه جوړوي: on-demand قاعدې باید د قاعدې شیانو لیست وي نه تش ځای نیوونکی، او disconnectOnSleep باید هغه چلند منعکس کړي چې تاسو غوره کړی نه کاپي شوی ډیفالټ۔

یوازې دوه پروتوکولونه د دریمې ډلې اپلیکیشنونو لپاره شته

Network Extension اپلیکیشنونو ته IPsec او IKEv2 ورکوي۔ L2TP او PPTP د سیستم په داخل کې پاتې کېږي، نو هغه اپلیکیشن چې دوی ته اړتیا لري نشي کولی یې ترلاسه کړي، او واقعي ځوابونه هغه دروازه ده چې IKEv2 ملاتړ کوي یا مدیریت شوی ترتیباتي پروفایل۔

اسناد هم هماغه بڼه تعقیبوي۔ پټنوم په Keychain کې کېږدئ او د سټرینګ پرځای دوامداره حواله ورکړئ۔ د خوندي کولو پر مهال صفر حواله معمولاً معنا لري چې پلټنه د توکي له لیکلو مخکې شوې وه، نه دا چې مدیر خراب دی۔

دواړه د ډیزاین پریکړې دي نه د تېښتې لارې۔ هغه اپلیکیشن چې پټنوم په خپلو غوره توبونو کې ساتي هغه لار غوره کوي چې چوکاټ یې هڅوي نه، او هغه ناکامي چې تولیدوي د خوندي کولو د خطا په څېر لوستل کېږي۔

له کوډ بیا لیکلو مخکې حق لرې کړئ

کله چې loadFromPreferences هېڅکله بیرته نه بولي، احتمالاً لامل د Network Extension وړتیا نشتوالی یا د برابرولو پروفایل دی چې هغه نه لري۔ هغه ناکامي د خطا ورکولو پرځای ځوړند پاتې کېږي، او هماغه دلیل دی چې کار کوونکی کوډ ساعتوں بیا لیکل کېږي۔ حق په هغه لاسلیک شوي جوړښت کې وګورئ چې غواړئ یې واستوئ، ځکه چې په سیمولیټر او په وسیله چلول توپیر کولی شي او مهم هدف وسیله ده۔ د هدف د لاسلیک تنظیمات پرانیزئ او تایید کړئ چې Network Extension وړتیا دقیقاً د هماغه جوړښت لپاره شته۔

د حق پرته د برابرولو پروفایل په سختو توکو کې هماغسې ناکامېږي، پداسې حال کې چې هماغه جوړښت ممکن په سیمولیټر کې نورمال لود شي۔ د کالونو ترتیب له بیا لیکلو مخکې لاسلیک شوی ارشیف په ریښتیني وسیله وآزمویئ۔

فرضیې نه، د حالت بدلونونه وګورئ

NEVPNStatusDidChangeNotification وګورئ او له هر ګام وروسته manager.connection.status ولیکئ۔ هغه حالت چې هېڅکله invalid نه پریږدي معنا لري چې پروفایل خوندي شوی نه دی یا حق نشته۔ هغه اړیکه چې connecting ته رسېږي او هېڅکله نه نښلېږي د وړاندیز یا اسنادو ته اشاره کوي، او هغه بېل تحقیق دی په بېلو شاهدو سره۔

تایید کړئ چې پروفایل د تنظیمات، عمومي، VPN لاندې ښکاري، او د هر closure خطا ولیکئ۔ هغه دوه حقایق پرته له اټکل کولو د ترتیب بګ له اجازې بګ څخه بېلوي۔

اړوندې مقالې