Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

نظرة عامة على التوزيع

يوفر Fenfa تجربة توزيع موحدة لجميع المنصات. كل منتج يحصل على صفحة تنزيل عامة تكشف تلقائياً منصة الزائر وتعرض زر التنزيل المناسب.

كيف يعمل التوزيع

mermaid
sequenceDiagram
    participant User as End User
    participant Page as Product Page
    participant Fenfa as Fenfa Server
    participant Storage as File Storage

    User->>Page: Visit /products/:slug
    Page->>Page: Detect platform (iOS/Android/Desktop)
    Page->>User: Show platform-specific download button

    alt iOS
        User->>Fenfa: Tap Install
        Fenfa->>User: itms-services:// redirect
        User->>Fenfa: GET /ios/:id/manifest.plist
        Fenfa->>User: Return manifest XML
        User->>Storage: Download IPA
    else Android
        User->>Fenfa: Tap Download
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: Download APK
    else Desktop
        User->>Fenfa: Click Download
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: Download binary
    end

صفحة تنزيل المنتج

كل منتج منشور له صفحة عامة على /products/:slug. تتضمن الصفحة:

  • أيقونة التطبيق واسمه من إعداد المنتج
  • كشف المنصة -- تستخدم الصفحة User-Agent للمتصفح لعرض زر التنزيل الصحيح أولاً
  • رمز QR -- يُولَّد تلقائياً لسهولة المسح من الهاتف
  • تاريخ الإصدارات -- جميع إصدارات المتغير المحدد، الأحدث أولاً
  • سجلات التغييرات -- ملاحظات كل إصدار تُعرض بشكل مدمج
  • متغيرات متعددة -- إذا كان المنتج يحتوي على متغيرات لمنصات متعددة، يمكن للمستخدمين التبديل بينها

التوزيع الخاص بكل منصة

المنصةالطريقةالتفاصيل
iOSOTA عبر itms-services://ملف manifest plist + تنزيل IPA مباشر. يتطلب HTTPS.
Androidتنزيل APK مباشرالمتصفح يُنزّل ملف APK. يُفعّل المستخدم "التثبيت من مصادر مجهولة".
macOSتنزيل مباشرملفات DMG أو PKG أو ZIP تُنزَّل عبر المتصفح.
Windowsتنزيل مباشرملفات EXE أو MSI أو ZIP تُنزَّل عبر المتصفح.
Linuxتنزيل مباشرملفات DEB أو RPM أو AppImage أو tar.gz تُنزَّل عبر المتصفح.

روابط التنزيل المباشر

لكل إصدار رابط تنزيل مباشر:

https://your-domain.com/d/:releaseID

هذا الرابط:

  • يُعيد الملف الثنائي مع رؤوس Content-Type وContent-Disposition الصحيحة
  • يدعم طلبات HTTP Range للتنزيلات القابلة للاستئناف
  • يزيد عداد التنزيل
  • يعمل مع أي عميل HTTP (curl وwget والمتصفحات)

تتبع الأحداث

يتتبع Fenfa ثلاثة أنواع من الأحداث:

الحدثالمُشغِّلالبيانات المُتبعَة
visitيفتح المستخدم صفحة المنتجIP، User-Agent، المتغير
clickيضغط المستخدم على زر التنزيلIP، User-Agent، معرف الإصدار
downloadيُنزَّل الملف فعلياًIP، User-Agent، معرف الإصدار

يمكن عرض الأحداث في لوحة الإدارة أو تصديرها بصيغة CSV:

bash
curl -o events.csv http://localhost:8000/admin/exports/events.csv \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

متطلب HTTPS

iOS يتطلب HTTPS

يتطلب تثبيت iOS OTA عبر itms-services:// أن يستخدم الخادم HTTPS مع شهادة TLS صالحة. للاختبار المحلي، يمكنك استخدام أدوات مثل ngrok أو mkcert. للإنتاج، استخدم وكيلاً عكسياً مع Let's Encrypt. راجع النشر الإنتاجي.

أدلة المنصات

Released under the Apache-2.0 License.