0Pricing
React Academy · درس

حزم تطبيقات منصات سطح المكتب وتوزيعها

أنشئوا مُثبّتات لـ macOS وWindows وLinux باستخدام electron-builder، مع توقيع التعليمات البرمجية والتحديث التلقائي.

حزم تطبيقات منصات سطح المكتب وتوزيعها درس مجاني في React Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

إعداد electron-builder

يُعد electron-builder الأداة القياسية لتغليف تطبيقات Electron في برامج تثبيت قابلة للتوزيع. يوجد إعداده في package.json ضمن المفتاح "build"، حيث تحدد البيانات الوصفية للتطبيق (appId وproductName)، ومسارات الأيقونات، وتنسيقات الإخراج المستهدفة لكل منصة.

أهداف البناء حسب المنصة

يدعم electron-builder نظام macOS (بتنسيقي dmg وzip)، ونظام Windows (مثبّت nsis)، ونظام Linux (بتنسيقي AppImage وdeb). يمكنك استهداف عدة منصات في أمر بناء واحد، أو إعداد CI للبناء على كل منصة باستخدام منفّذها الأصلي لتحقيق أفضل توافق.

توقيع التعليمات البرمجية لنظام macOS

يتطلب macOS توقيع التعليمات البرمجية باستخدام شهادة مطوّر من Apple حتى يسمح Gatekeeper للمستخدمين بفتح التطبيق دون تحذير أمني. يقرأ electron-builder شهادتك من macOS Keychain أثناء عملية البناء، ويوقّع جميع الملفات الثنائية تلقائيًا.

التوثيق لدى Apple لنظام macOS

إلى جانب توقيع التعليمات البرمجية، يتطلب macOS الحديث أيضًا التوثيق — أي إرسال التطبيق إلى خدمة التوثيق لدى Apple، التي تفحصه بحثًا عن البرمجيات الخبيثة وتصدر تذكرة. يستطيع electron-builder أتمتة التوثيق عبر electron-notarize، وسيُمنع المستخدمون الذين يشغّلون macOS 10.15 أو أحدث من تشغيل التطبيق دون ذلك.

توقيع التعليمات البرمجية لنظام Windows

يتطلب Windows شهادة Authenticode من جهة إصدار شهادات موثوقة (CA) حتى يثق SmartScreen بمثبّت التطبيق. من دون التوقيع، سيرى المستخدمون تحذير "حَمَى Windows جهاز الكمبيوتر الخاص بك". تزيل شهادات التحقق الممتد (EV) التحذير فورًا، بينما تبني شهادات التحقق المؤسسي (OV) الثقة بمرور الوقت.

بنية مخرجات البناء

بعد نجاح عملية البناء، يكتب electron-builder برامج التثبيت الخاصة بكل منصة في المجلد dist/. ستجد ملف DMG أو zip لنظام macOS، وملف NSIS‏ .exe لنظام Windows، وملف AppImage أو ‎.deb لنظام Linux، إلى جانب بيان التحديث التلقائي latest.yml (أو latest-mac.yml).

أيقونات التطبيق

تحتاج تطبيقات Electron إلى أيقونات بتنسيقات خاصة بكل منصة: ملف PNG بحجم 512x512 لنظام Linux، وملف ICNS متعدد الدقات لنظام macOS، وملف ICO متعدد الدقات لنظام Windows. يستطيع electron-builder إنشاء جميع التنسيقات من ملف PNG واحد بحجم 1024x1024 باستخدام الخيار --icon.

التحديث التلقائي باستخدام electron-updater

تتكامل الحزمة electron-updater مع electron-builder لتوفير التحديثات التلقائية. انشر إصداراتك في GitHub Releases أو S3، وسيتمكن electron-updater من التحقق من وجود تحديثات عند بدء التشغيل، وتنزيل التحديث التفاضلي في الخلفية، ومطالبة المستخدم بإعادة التشغيل.

التحقق من وجود تحديثات عند بدء التشغيل

استدعِ autoUpdater.checkForUpdatesAndNotify() في main.js بعد أن يصبح التطبيق جاهزًا. يجلب electron-updater بيان latest.yml من وجهة النشر، ويقارن الإصدارات، وإذا توفر تحديث، ينزّله ويعرض إشعارًا أصليًا عند جاهزيته للتثبيت.

أرشيف ASAR

يجمع electron-builder ملفات JavaScript الخاصة بتطبيقك في أرشيف ASAR واحد (يشبه ملف tar) لتوزيعه. يؤدي ذلك إلى تحسين أداء بدء التشغيل من خلال تقليل عمليات البحث في نظام الملفات، ويجعل فحص شيفرتك المصدرية مباشرةً أصعب، وإن لم يكن مستحيلًا.

فك حزم الوحدات الأصلية من ASAR

لا يمكن تحميل وحدات Node.js الأصلية (ملفات .node) من داخل أرشيف ASAR، بل يجب فك حزمها إلى نظام الملفات. اضبط asarUnpack في electron-builder لإدراج أنماط الوحدات الأصلية، ما يضعها في المجلد app.asar.unpacked بجوار الأرشيف.

متطلب التوثيق لنظام macOS

لماذا يُعد التوثيق مطلوبًا لتوزيع تطبيقات macOS، إضافةً إلى توقيع التعليمات البرمجية؟

مراجعة الدرس

يتضمن توزيع تطبيق Electron إعداد أهداف electron-builder، وتوقيع التعليمات البرمجية لكل من macOS (مع التوثيق) وWindows (باستخدام Authenticode)، وإعداد التحديثات التلقائية اختياريًا باستخدام electron-updater. يجمع أرشيف ASAR تطبيقك للتوزيع، مع فك حزم الوحدات الأصلية بشكل منفصل. ويتولى خط أنابيب CI/CD متين هذه الخطوات تلقائيًا لكل منصة.

الأسئلة الشائعة

هل درس «حزم تطبيقات منصات سطح المكتب وتوزيعها» مجاني؟

نعم — نص درس «حزم تطبيقات منصات سطح المكتب وتوزيعها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «حزم تطبيقات منصات سطح المكتب وتوزيعها»؟

أنشئوا مُثبّتات لـ macOS وWindows وLinux باستخدام electron-builder، مع توقيع التعليمات البرمجية والتحديث التلقائي. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «حزم تطبيقات منصات سطح المكتب وتوزيعها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بنية Electron: عمليتا التشغيل الرئيسي والعرض
  2. إعداد React مع Electron
  3. الاتصال بين العمليات باستخدام IPC
  4. حزم تطبيقات منصات سطح المكتب وتوزيعها
← العودة إلى React Academy