لماذا لا يغطي النفق المنقسم تحديثات تطبيقك
التطبيق الذي استثنيته ليس دائمًا العملية التي تنزّل التحديثات. حدّد مالك النقل، وأبقِ التحقق من التحديث، واختبر تنزيل الحزمة.
تضيف التطبيق إلى قائمة استبعاد النفق المنقسم، فيصل التطبيق إلى الإنترنت مباشرة، ومع ذلك تظل التحديثات تفشل أو تظل تزحف عبر النفق. الاستبعاد نجح. لكنه غطّى عملية مختلفة عن العملية التي تنفّذ التنزيل، لأن محدّثًا حديثًا نادرًا ما يكون الملف التنفيذي نفسه الذي تمثله نافذة التطبيق.
الخرافة: استبعاد التطبيق يستبعد حركته
يطابق النفق المنقسم حسب التطبيق عملية أو حزمة أو مسار تطبيق، بحسب المنصة. وهو لا يطابق علامة تجارية ولا ميزة ولا نية مستخدم. عندما يسلّم التطبيق التنزيل إلى مساعد أو خدمة منصة مشتركة أو مكوّن متصفح، فإن لهذا المساعد هويته الخاصة ومساره الخاص عبر النفق. لا تعرف قائمة الاستبعاد أن العمليتين تنتميان إلى المنتج نفسه. إنها تعرف فقط العملية التي سمّيتها.
إذن فالقاعدة تفعل تمامًا ما أُمرت به. كان الافتراض حول من يملك النقل خاطئًا، ويبدأ الإصلاح بتحديد ذلك المالك بدلًا من إضافة مزيد من الاستثناءات.
حدّد مالك النقل
على Android، قد يُجلب التحديث بواسطة حزمة خدمة مشتركة بدلًا من حزمة التطبيق التي استثنيتها، وقاعدة VPN لكل تطبيق تنطبق على الحزمة التي تفتح المقبس. وعلى Windows، قد تعمل خدمة التحديث تحت مسار تنفيذي مختلف عن التطبيق، فتفوتها قاعدة تطابق مسار التطبيق. وعلى macOS، قد ينفّذ مساعد ذو صلاحيات أو خدمة تحديث نظام تعمل في الخلفية النقل بينما يقتصر دور التطبيق على طلبه.
حدّد المالك من الأدلة: عرض نشاط الشبكة في المنصة، أو التقاط الحزم مصفّى حسب العملية، أو وثائق المورّد التي تسمّي مكوّن التحديث. التخمين من اسم العملية هو سبب الخلط بين ملفين تنفيذيين متشابهين واستبعاد الخطأ منهما.
كثيرًا ما تقسم أنظمة التحديث العمل أيضًا. يتحقق طلب بيانات وصفية صغير من إصدار ما، بينما يذهب تنزيل حزمة أكبر بكثير إلى مضيف توصيل محتوى أو نطاق مختلف. قد ينجح فحص البيانات الوصفية عبر النفق بينما يتعطل نقل الحزمة على مضيف يوجّه النفق إليه مسارًا مختلفًا. يفسّر هذا التقسيم التقرير المربك حيث تُكتشف التحديثات ولا تُثبّت أبدًا. اختبر تنزيل الحزمة نفسه، من الجهاز نفسه والشبكة نفسها، بدلًا من اختبار ما إذا كان التطبيق يُفتح.
التحقق يصمد أمام تغيير المسار
تغيير المسار لا يستبدل TLS ولا هوية الناشر ولا التحقق من توقيع الحزمة. لا تُعطّل تلك الفحوص لأن التنزيل ينجح فقط بعد تجاوز تحذير شهادة غير مفسّر. التحذير الذي يظهر على المسار المستبعد وحده نتيجة يجب التحقيق فيها، وليس عقبة. افحصه قبل أن توسّع التجاوز.
على جهاز مُدار، اطلب استثناءً مدعومًا بدلًا من إضافة قاعدة واسعة لكل خدمة نظام. القاعدة التي تستبعد جميع الخدمات المشتركة لإصلاح محدّث واحد توسّع التجاوز إلى ما يتجاوز الطلب الأصلي بكثير.
اختبر التحديث ثم وثّق المالك
أعد الاتصال بعد التغيير وتحقق من القاعدة المطبقة مرة أخرى، لأن بعض العملاء يعيدون بناء توجيههم عند إعادة اتصال النفق. نفّذ دورة تحديث كاملة: فحص وتنزيل وتحقق وتثبيت. الفحص الناجح يثبت أصغر جزء من المسار.
سجّل مالك النقل ومضيفات الوجهة والمسار المقصود في المكان نفسه الذي توجد فيه قاعدة النفق المنقسم. وإلا فإن التغيير التالي في آلية التحديث سيبطل الاستثناء بصمت، ولن يكون لدى من يرثه أي طريقة لمعرفة العملية التي كُتبت القاعدة من أجلها.