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

استكشاف الأخطاء وإصلاحها ​

تغطي هذه الصفحة المشكلات الشائعة عند تشغيل Fenfa وحلولها.

تثبيت iOS ​

"Unable to Install" / فشل التثبيت ​

الأعراض: الضغط على زر التثبيت في iOS يُظهر "Unable to Install" أو لا يحدث شيء.

الأسباب والحلول:

  1. HTTPS غير مُعيَّن. يتطلب iOS HTTPS مع شهادة TLS صالحة للتثبيت OTA. الشهادات الموقّعة ذاتياً لا تعمل.

    • الحل: أعدّ وكيلاً عكسياً مع شهادة TLS صالحة. راجع النشر الإنتاجي.
    • للاختبار: استخدم ngrok لإنشاء نفق HTTPS: ngrok http 8000
  2. primary_domain خاطئ. يحتوي ملف manifest plist على روابط تنزيل مبنية على primary_domain. إذا كان خاطئاً، لا يمكن لـ iOS جلب ملف IPA.

    • الحل: اضبط FENFA_PRIMARY_DOMAIN على URL HTTPS الدقيق الذي يصل إليه المستخدمون (مثلاً https://dist.example.com).
  3. مشكلات الشهادة. يجب أن تغطي شهادة TLS النطاق وأن تكون موثوقة من iOS.

    • الحل: استخدم Let's Encrypt للحصول على شهادات مجانية وموثوقة.
  4. انتهاء صلاحية توقيع IPA. قد تكون صلاحية ملف التعريف أو شهادة التوقيع منتهية.

    • الحل: أعد توقيع IPA بشهادة صالحة وأعد الرفع.

ربط UDID لا يعمل ​

الأعراض: يُثبَّت ملف التكوين لكن الجهاز غير مسجَّل.

الأسباب والحلول:

  1. رابط الرد غير قابل للوصول. يجب أن يكون رابط رد UDID قابلاً للوصول من الجهاز.

    • الحل: تأكد من صحة primary_domain وإمكانية الوصول إليه من شبكة الجهاز.
  2. انتهاء صلاحية الـ nonce. تنتهي صلاحية nonces الملفات الشخصية بعد مهلة.

    • الحل: أعد تنزيل ملف التكوين وحاول مجدداً.

مشكلات الرفع ​

الرفع يفشل بخطأ 401 ​

الأعراض: {"ok": false, "error": {"code": "UNAUTHORIZED", ...}}

الحل: تحقق من أن رأس X-Auth-Token يحتوي على رمز صالح. نقاط نهاية الرفع تقبل رموز الرفع والإدارة.

bash
# تحقق من عمل رمزك
curl -H "X-Auth-Token: YOUR_TOKEN" http://localhost:8000/admin/api/products

الرفع يفشل بخطأ 413 (طلب أكبر من المسموح) ​

الأعراض: فشل رفع الملفات الكبيرة بخطأ 413.

الحل: هذا عادةً حد الوكيل العكسي، وليس Fenfa نفسه. ازد الحد:

Nginx:

nginx
client_max_body_size 2G;

Caddy: Caddy لا يحد حجم الجسم افتراضياً، لكن إذا كنت قد ضبطته:

dist.example.com {
    request_body {
        max_size 2GB
    }
    reverse_proxy localhost:8000
}

الرفع الذكي لا يكتشف البيانات الوصفية ​

الأعراض: الإصدار ورقم البناء فارغان بعد الرفع الذكي.

الحل: الكشف التلقائي للرفع الذكي يعمل فقط لملفات IPA وAPK. لصيغ سطح المكتب (DMG وEXE وDEB إلخ.)، أدخل version وbuild صراحةً في طلب الرفع.

مشكلات Docker ​

الحاوية تبدأ لكن لوحة الإدارة فارغة ​

الأعراض: تُحمَّل لوحة الإدارة لكنها لا تُظهر بيانات أو صفحة فارغة.

الحل: تحقق من تشغيل الحاوية وصحة تعيين المنفذ:

bash
docker ps
docker logs fenfa

فقدان البيانات بعد إعادة تشغيل الحاوية ​

الأعراض: تختفي جميع المنتجات والمتغيرات والإصدارات بعد إعادة تشغيل الحاوية.

الحل: ارفع أجزاءً دائمة:

bash
docker run -d --name fenfa -p 8000:8000 \
  -v ./data:/data \
  -v ./uploads:/app/uploads \
  fenfa/fenfa:latest

رفض الإذن على الأجزاء المثبّتة ​

الأعراض: يفشل Fenfa في الكتابة إلى /data أو /app/uploads.

الحل: تأكد من وجود المجلدات المضيفة وامتلاكها للأذونات الصحيحة:

bash
mkdir -p data uploads
chmod 777 data uploads  # Or set appropriate UID/GID

مشكلات قاعدة البيانات ​

خطأ "database is locked" ​

الأعراض: يُعيد SQLite "database is locked" في ظل تزامن عالٍ.

الحل: يتعامل SQLite جيداً مع القراءات المتزامنة لكنه يُسلسل الكتابات. يحدث هذا الخطأ عادةً في ظل حمل كتابة عالٍ جداً. الحلول:

  • تأكد من كتابة نسخة واحدة فقط من Fenfa إلى نفس ملف قاعدة البيانات.
  • إذا كنت تشغّل نسخاً متعددة، استخدم تخزين S3 وقاعدة بيانات مشتركة (أو الانتقال إلى قاعدة بيانات مختلفة في إصدار مستقبلي).

قاعدة بيانات تالفة ​

الأعراض: يفشل Fenfa في البدء مع أخطاء SQLite.

الحل: استعادة من النسخ الاحتياطي:

bash
# إيقاف Fenfa
docker stop fenfa

# استعادة النسخة الاحتياطية
cp /backups/fenfa-latest.db /path/to/data/fenfa.db

# إعادة التشغيل
docker start fenfa

الوقاية

أعدّ نسخاً احتياطية يومية آلية. راجع النشر الإنتاجي للاطلاع على سكريبت النسخ الاحتياطي.

مشكلات الشبكة ​

manifest iOS يُعيد روابط خاطئة ​

الأعراض: يحتوي ملف manifest plist على http://localhost:8000 بدلاً من النطاق العام.

الحل: اضبط FENFA_PRIMARY_DOMAIN على URL HTTPS العام الخاص بك:

bash
FENFA_PRIMARY_DOMAIN=https://dist.example.com

التنزيلات بطيئة أو تنتهي مهلتها ​

الأعراض: تنزيلات الملفات الكبيرة بطيئة أو تفشل.

الحلول المحتملة:

  • ازد مهلة الوكيل العكسي: proxy_read_timeout 600s; (Nginx)
  • أوقف تفعيل تخزين الطلبات المؤقت: proxy_request_buffering off; (Nginx)
  • فكّر في استخدام تخزين متوافق مع S3 مع CDN للملفات الكبيرة

الحصول على المساعدة ​

إذا لم تُغطَّ مشكلتك هنا:

  1. تحقق من مشكلات GitHub للمشكلات المعروفة.
  2. راجع سجلات الحاوية: docker logs fenfa
  3. افتح مشكلة جديدة مع:
    • إصدار Fenfa (docker inspect fenfa | grep Image)
    • مخرجات السجل ذات الصلة
    • خطوات إعادة الإنتاج

Released under the Apache-2.0 License.