
عميل VPN الرسمي لنظامي iOS وmacOS، يوفر نفقًا مشفّرًا، وتخزينًا آمنًا لبيانات الاعتماد، وتكوينًا تلقائيًا للخادم، ودعمًا لبروتوكولات VPN الشائعة.
حقوق النشر (c) 2025 Proton Technologies AG
يستخدم هذا المشروع Swift Package Manager لجميع اعتمادياته. اسمح لبرنامج Xcode بحل الحزم قبل تشغيل أي هدف.
git submodule init + git submodule update)brew bundleCmd+Shift+K)يلزم توفر مجموعة من الأسرار لبناء المشروع.
تشمل هذه الأسرار عناوين URL ومفاتيح، ويتم الاحتفاظ بها في ملفات باسم ObfuscatedConstants.swift.
تُحفظ هذه الملفات في مستودع منفصل، الأمر الذي يتطلب بعض الإعداد الإضافي للحفاظ على مزامنتها.
أولاً، قم باستدعاء البرنامج النصي الموجود في Integration/Scripts/credentials.sh مع الأمر setup.
وفّر المسار الذي ترغب في استنساخ مستودع الأسرار إليه محليًا باستخدام الوسيط -p، وعنوان url الخاص بالمستودع باستخدام الوسيط -r.
./Integration/Scripts/credentials.sh setup -p <path to credentials repo> -r <credentials remote>
ثم، للتحقق من نجاح الإعداد:
./Integration/Scripts/credentials.sh checkout
إذا تم الإعداد بشكل صحيح، ستتم مزامنة الثوابت المبهمة تلقائيًا أثناء مرحلة بناء Generate Obfuscated Constants في كل تطبيق.
يتم تقسيم المشروع إلى حزم حسب الطبقة لتجنب جحيم تبعيات الوحدات:
يجب تجنب إضافة كود/ميزات جديدة إلى LegacyCommon وNEHelper إن أمكن. يجب تفكيك هذه الحزم تدريجيًا من أجل وضع مكوناتها في حزم جديدة أو موجودة ضمن الفئات الثلاث المذكورة أعلاه.
أثناء التطوير، يتم تشغيل swiftlint في الوضع غير الصارم لتسهيل التطوير دون القلق بشأن تنسيق الكود. في بيئة CI، يكون الفحص صارمًا وسيفشل عند أي تحذير. قبل إيداع الكود في هذا المستودع، قم بتشغيل البرنامج النصي التالي لإضافة خطاف pre-commit الذي سيتحقق من جميع الملفات الجديدة أو المعدّلة في الوضع الصارم ويمنعك من إيداع الكود الذي لن يجتاز CI.
./Integration/Scripts/pre_commit_lint.sh setup
يستخدم التطبيق SwiftGen لإنشاء ملف Localizable.strings للوصول إلى جميع نصوص التطبيق المخزنة في ملفات Localizable.strings القياسية. فقط أضف نصًا جديدًا إلى حزمة Strings وشغّل أمر swiftgen في دليل يحتوي على swiftgen.yml.
الكود وملفات البيانات في هذا التوزيع مرخصة بموجب شروط GPLv3 كما نشرتها مؤسسة البرمجيات الحرة. راجع https://www.gnu.org/licenses/ للحصول على نسخة من هذا الترخيص.
حقوق النشر (c) 2025 Proton Technologies AG