كل ما يلزم لرفع التطبيقين على المتاجر، ثمّ تحديثهما وتشغيلهما وتعديلهما لاحقاً — روابط وحزم وخطوات.
آخر تحديث: 19 أغسطس 2026 · أعدّه: كلود (جلسة أبوأحمد)
المشكلة التي عالجناها: كان كل واحد يبني من نسخته ويُسمّي الملف بيده،
فاجتمع عندنا v0.1.0 وv0.1.1 ببصمة واحدة (بناءٌ واحد باسمين)،
وصار على المتجر 0.3.0 بينما صفحة الفريق تخدم 0.5.0 والكود عند 0.6.0 — ثلاث «أحدث».
القاعدة الآن: رقم الإصدار يُقرأ من pubspec.yaml
داخل كوميت مدفوع للمستودع المشترك. لا تسمية يدوية، ولا نشر من نسخة خاصة.
…جارٍ التحميل
يُقرأ حيًّا من manifest.json — وهو ما تكتبه بوابة الإصدار، لا يُحرَّر بيد.
تسليم النسخ صار عبر git لا عبر أرشيف: تستنسخ، تشتغل، تدفع — فيرى الجميع تعديلك ويراه أبوأحمد، وكل دفعة مسجّلة باسم صاحبها.
| التطبيق | المستودع |
|---|---|
| فيوسويت | https://apps.fudex.com.sa/git/fusuite-mobile.git |
| فيوسبيس | https://apps.fudex.com.sa/git/fuspace-app.git |
| VUREAD (التسجيل الذكي) | https://apps.fudex.com.sa/git/vuread-mobile.git |
الدخول ببريد فيودكس + توكن شخصي من صفحة المصدر. حذف بريدك من قائمة السماح يقطع وصولك فورًا.
مفاتيح التوقيع وkey.properties لا تدخل المستودع — تُطلب من الإدارة التقنية.
git pull — لا تبنِ فوق نسخة قديمة.git push — ما لم يُدفَع لا يُنشر.version: X.Y.Z+B في pubspec.yaml بكوميت مستقل وادفعه.
Z · ميزة ⇐ Y · وارفع B في كل بناءٍ يخرج منك مهما كان.flutter build apk/appbundle --release).fudex-app-publish --app fusuite --commit <sha> --file build/app.apk --notes "…"| المحاولة | الرد |
|---|---|
| بناء من كوميت غير مدفوع | مرفوض — «ادفع عملك أولاً» |
| نفس البناء برقمين مختلفين | مرفوض — عين فخّ v0.1.0/v0.1.1 |
| نفس الرقم ببناءين مختلفين | مرفوض — ارفع رقم البناء |
| أرشيف مبتور أو تالف | مرفوض — «لن يُنشر ملف لا يثبّته جهاز» |
كل إصدار يُسجَّل ببصمته وكوميته وناشره في manifest.json وسجلّ الإصدارات.
| FuSpace | FuSuite (فيوسويت) | |
|---|---|---|
| ما هو | مساحة العمل: محادثات، غرف، اجتماعات، حضور وانصراف، مهام | البريد والتقويم والاجتماعات والملفات والمحاضر في تطبيق واحد |
| معرّف الحزمة | sa.com.fudex.fuspace | sa.com.fudex.fusuite |
| الإصدار الحالي | 2.5.1 (versionCode 13) | 0.7.2 (versionCode 13) |
| التقنية | Flutter 3.44.6 · Dart 3.12 · minSdk 24 · targetSdk 36 | |
| أندرويد | حزمة AAB جاهزة وموقّعة | حزمة AAB جاهزة وموقّعة |
| iOS | المشروع يُبنى — ينقص ٣ أمور (القسم ٨) | لا يوجد مشروع iOS بعد |
| التنبيهات | Firebase مشروع واحد: fudex-fuspace-c750a | |
| مصدر الكود | WorkSpace/fuspace-app | WorkSpace/fusuite-mobile |
| الوجهة | الرابط | الحساب | مَن يملك الوصول |
|---|---|---|---|
| Google Play Console | play.google.com/console | حساب مطوّر باسم Fudex-EBS · بريد الحساب developer@fudex.com.sa | أبوأحمد (m@fudex.com.sa) عضو معتمد — يمنح الصلاحيات للبقية |
| App Store Connect | appstoreconnect.apple.com | فريق Fudex · Team ID TBYZE4288M (اشتراك مدفوع فعّال) | أبوأحمد |
| Firebase (التنبيهات) | console.firebase.google.com | مشروع fudex-fuspace-c750a (رقم 716611782998) — خطة Spark | أبوأحمد |
| Play Console — إدارة الأعضاء | Users and permissions | من هنا يُدعى عضو الفريق: Invite user ← البريد ← صلاحيات التطبيق (Release manager للرفع) | |
AAB هي الصيغة التي يقبلها قوقل بلاي (لا APK). وAPK للتثبيت المباشر على أجهزة الفريق والاختبار قبل الرفع. كلّها موقّعة بمفتاح الإصدار الرسمي.
الجديد: مكالمات حقيقية بين الموظفين — شاشة رنين أصلية ملء الشاشة (رد / اعتذار برسالة)، «الويب أولاً ١٠ ثوانٍ ثم يرنّ الجوال»، إيقاظ بالدفع (FCM) والتطبيق مغلق مع رنين مُلحّ فوق شاشة القفل، صوت المكالمة على سماعة الأذن افتراضاً مع أولوية تلقائية للسماعات السلكية والبلوتوث وزر سماعة خارجية، زر اتصال في ملف الزميل ورأس المحادثة، وسجل المكالمات في الوسيط. + 2.9.2: شاشة المكالمة تقفز في وجهك بإذن «الظهور فوق التطبيقات» (بدونه يمنع أندرويد بدءَ شاشةٍ من الخلفية فيبقى الإشعار وحده) · دفعة صفحة التجربة كانت تُسقَط بصمت لأن مرسِلها بلا حساب · سطرٌ يقول كم زميلاً متاحاً الآن فلا تحتمل «الفارغة» تفسيرين. + 2.9.1: لوحة دعوة زميلٍ للمكالمة صار فيها بحثٌ حيّ يصل الخادم ويضع «آخر من كلّمتهم» أعلى (كانت تظهر فارغة) · زر «المحادثة» داخل المكالمة يفتح المحادثة نفسها لا اقتراحاتٍ جاهزة، والمكالمة تبقى في شريطٍ يزيح محتوى الشاشة فلا يغطّي زرّ الرجوع · إصلاح جذر «تبويب الاتصالات فاضٍ»: مهلة الشبكة كانت تغطّي بدء الرد لا تنزيل جسده، فردُّ الروستر (٢٤١KB) يعلق بلا نهاية ويُبقي المصالحة عالقة للأبد بلا خطأ ⇒ المهلة تشمل الجسد الآن، وسقفٌ على مجموعة الإقلاع، وإعادة جلبٍ عند فتح أي شاشة تحتاج الروستر. + 2.9.0: زرّا «رد» و«اعتذار» على إشعار المكالمة نفسه (الاعتذار بلا فتح التطبيق) · عودة تبويب فيوبورد · شريط دوام اليوم معلوماتٌ فقط والمداخل صارت اتصال/بريك/استئذان/ملاحظات · مكالمة جماعية حتى ٤ أطراف · رسالة أثناء المكالمة وأعذار عند الإلغاء. + 2.8.0: المكالمة تظهر ملء الشاشة على الجهاز المقفل (وتوقظ الشاشة) + نافذة عائمة (PiP) تطفو فوق أي تطبيق عند مغادرة التطبيق أثناء مكالمة أو غرفة صوتية + خدمة أمامية تُبقي الصوت حياً بالخلفية — مُختبَرة على محاكي أندرويد ١٤ حيّ. + 2.7.0: إعادة هيكلة الاتصال — يبقى اتصالاً يظهر ملء الشاشة ويُصغَّر لشريط عائم وترجع له؛ يرنّ الجوال مباشرة لمن ليس على الويب؛ استقرار ٩٠ث؛ إشعار «مكالمة جارية» للخلفية؛ تخطيط متمركز؛ بطاقة رئيسية وزر اتصال بقائمة المحادثات وإنهاء برسالة. + 2.6.1: نغمة رنين جرسية وتبويبا الاتصالات/السجل. + إصلاح جوهري: الوصلة الحية للتطبيق كانت مقطوعة منذ تبديل فيوتشات ٢ — عادت لحظية.
ملاحظة الرفع: بعد النشر على بلاي، رنين «التطبيق مغلق» يصل الأجهزة فور تحديثها — أجهزة الفريق المسجّلة حالياً (٨) تستقبل مباشرة بعد التثبيت.
تطبيق iOS يُبنى ويعمل من نفس المصدر (جُرّب على المحاكي بمكالمة كاملة: رنين بعد ١٠ ثوانٍ ← رد ← صوت حي). لرفعه على App Store يلزم من أبوأحمد ثلاث خطوات لا يملكها غيره:
ios/Runner.xcworkspace من مصدر التطبيق واختيار الفريق في Signing & Capabilities ثم Product ▸ Archive ▸ Upload.sa.com.fudex.fuspace في مشروع Firebase fudex-fuspace-c750a وتنزيل GoogleService-Info.plist إلى ios/Runner/، ورفع مفتاح APNs من حساب آبل إلى إعدادات المشروع.الرئيسية صارت للتسجيل فقط: زرّ أحمر وشريط موجات، وبضغطة واحدة يبدأ. التسجيلات صارت صفحة تظهر بسحبة واحدة بدل الازدحام مع زرّ التسجيل. بعد الرفع: تفريغ بتمييز المتحدثين (المتحدث ١/٢/٣ مع سطر يصف كل صوت لتسمّيه بثانية)، ملخّص بهيكل يناسب النوع (قرارات ومهام للاجتماع، محاور وأسئلة مراجعة للمحاضرة، آيات وأحاديث ودروس للخطبة)، اسأل التسجيل وثبّت الإجابة في الملخص، وملاحظات مربوطة بلحظة التشغيل. الدخول بحساب قوقل عبر FuPass — بلا كلمات مرور. يدعم أندرويد 7 فأعلى (arm64/arm32).
جديد في 1.1.0: أيقونة التطبيق أُصلحت (طبقتها الأمامية كانت شفافة فعلياً بلا شعار على أغلب الأجهزة) · صورة حسابك تظهر أعلى الرئيسية.
التثبيت: افتح الرابط من متصفح الجوال ← اسمح بالتثبيت من هذا المصدر إن طُلب ← ادخل بحساب قوقل. المصدر: WorkSpace/vuread-mobile + الخادم vuread.fudex.com.sa على hz2. لا نسخة متجر بعد (نسخة فريق).
كلّها على apps.fudex.com.sa — موقع ثابت مستقلّ (عربي/إنجليزي بمبدّل لغة) أُنشئ لهذا الغرض، فلا تعليق له بأي نطاق تشغيليّ للمنصّات.
المصدر لا يُترك على رابطٍ عام. بوابة مقفلة تسأل عن هويتك بدخول قوقل (حساب فيودكس) ثم تطابق بريدك مع قائمة سماح؛ ومَن ليس في القائمة لا يُنزّل شيئاً، وكل تنزيل يُسجَّل باسمه ووقته:
لإضافة موظف: أرسل بريده وسيُضاف لقائمة السماح
(/opt/fuapps/allow.txt على hz1 — سطر لكل بريد، وسطر @fudex.com.sa يفتحها لكل موظفي النطاق).
حزمة البوابة بلا مفاتيح توقيع وبلا google-services.json — المفاتيح تبقى في الحزمة المشفّرة وحدها.
| الحقل في Play Console | FuSpace | فيوسويت |
|---|---|---|
| Privacy policy (إلزامي) | apps.fudex.com.sa/fuspace/privacy/ | apps.fudex.com.sa/fusuite/privacy/ |
| Terms / EULA (اختياري بالمتجر، إلزامي عندنا) | apps.fudex.com.sa/fuspace/terms/ | apps.fudex.com.sa/fusuite/terms/ |
| Website (بيانات الاتصال) | apps.fudex.com.sa — أو fudex.com.sa | |
| Support email | contact@fudex.com.sa | |
| صفحة التواصل / الدعم | apps.fudex.com.sa/contact/ | |
| Account deletion URL | …/fuspace/privacy/#delete | …/fusuite/privacy/#delete |
كل صفحة تحوي النصّ العربي والإنجليزي معاً بمبدّل لغة، فرابطٌ واحد يكفي للغتَي المتجر
(وللإنجليزية مباشرةً أضف #en في آخر الرابط).
الاسم (٣٠ حرفاً كحدّ أقصى): FuSpace — مساحة عمل فيودكس · إنجليزي: FuSpace — Fudex Workspace
وصف قصير (٨٠):
عربي: «مساحة عمل فريقك: محادثات وغرف واجتماعات وحضور ومهام في تطبيق واحد.»
English: “Your team’s workspace: chat, rooms, meetings, attendance and tasks.”
وصف كامل (عربي):
FuSpace هو تطبيق مساحة العمل من فيودكس: مكان واحد يجمع فريقك ومحادثاته واجتماعاته ومهامه.
• محادثات الفريق: قنوات ومحادثات خاصة وردود ضمن الموضوع، مع مرفقات ورسائل صوتية وتنبيهات فورية.
• الغرف والاجتماعات: انضمّ بصوتك إلى غرفة عمل أو اجتماع بضغطة واحدة، بجودة عالية وبثبات على الجوال.
• الحضور والانصراف: سجّل دوامك من جوالك، ويصل السجل مباشرة إلى نظام الموارد البشرية.
• المهام: تابع مهامك ومشاريعك وأنجزها من التطبيق.
• وضع القيادة: واجهة مبسّطة تُقرأ وتُدار صوتياً وأنت في الطريق.
التطبيق مخصّص لموظفي ومستخدمي فيودكس المعتمدين ويتطلب حساب فيودكس؛ لا يتضمّن تسجيلاً ذاتياً
ولا رسوماً ولا إعلانات. للحصول على حساب أو للدعم: contact@fudex.com.sa
Full description (English):
FuSpace is the Fudex workspace app: one place for your team's conversations, meetings and tasks.
• Team chat: channels, direct messages and threaded replies, with attachments, voice messages and instant notifications.
• Rooms and meetings: join a work room or a meeting with one tap, with reliable mobile audio.
• Attendance: check in and out from your phone; the record goes straight into the HR system.
• Tasks: follow your projects and complete your tasks from the app.
• Driving mode: a simplified, voice-friendly interface for when you are on the road.
FuSpace is for Fudex employees and authorised users and requires a Fudex account. No self-registration,
no fees, no ads. For an account or support: contact@fudex.com.sa
الاسم: فيوسويت — مكتب فيودكس · إنجليزي: FuSuite — Fudex Workplace
وصف قصير (٨٠):
عربي: «بريدك وتقويمك واجتماعاتك وملفاتك ومحاضرك في تطبيق واحد.»
English: “Your mail, calendar, meetings, files and minutes in one app.”
وصف كامل (عربي):
فيوسويت يجمع أدوات يومك في تطبيق واحد بحساب واحد.
• البريد: صندوقك المؤسسي كاملاً — قراءة وإرسال ومرفقات ومجلدات وتنبيه فوري للبريد الجديد.
• التقويم: مواعيدك وتكراراتها وتذكيراتها، وتعمل بلا اتصال ثم تُزامن.
• الاجتماعات: ابدأ اجتماعاً أو انضمّ إليه بخطوة واحدة، مع دعوة الزملاء ومشاركة رابط الغرفة.
• الملفات: تصفّح مساحتك ورفعها وتنزيلها، مع عارض PDF ومحرّر نصوص ومعاينة صور.
• المحاضر: محضر كل اجتماع وتفريغه النصّي مع بحث داخل النصّ.
التطبيق مخصّص لمستخدمي فيودكس المعتمدين ويتطلب حساب فيودكس؛ بلا تسجيل ذاتي وبلا رسوم وبلا إعلانات.
للدعم: contact@fudex.com.sa
Full description (English):
FuSuite brings your working day into a single app with a single account.
• Mail: your full corporate mailbox — read, send, attachments, folders and instant new-mail alerts.
• Calendar: events, recurrences and reminders, working offline and syncing when you reconnect.
• Meetings: start or join a meeting in one step, invite colleagues and share the room link.
• Files: browse, upload and download your space, with a PDF viewer, text editor and image preview.
• Minutes: every meeting's minutes and transcript, searchable inside the text.
FuSuite is for authorised Fudex users and requires a Fudex account. No self-registration, no fees, no ads.
Support: contact@fudex.com.sa
الأيقونتان 512×512 جاهزتان (روابطهما أعلاه). المتبقّي على التصميم: صورة مميّزة 1024×500 لكل تطبيق، و٢–٨ لقطات شاشة هاتف (عرض ٣٢٠–٣٨٤٠ بكسل، نسبة ١٦:٩ أو ٩:١٦). اللقطات تُلتقط من جهاز حقيقي أو محاكي بعد تثبيت الـAPK من هذه الصفحة.
FuSpace أو فيوسويت.aab، وأضف قائمة المختبرين (بُرد الفريق)، ثم Review release ← Start rollout.
الاختبار الداخلي يصل خلال دقائق بلا مراجعة، فتلتقط الأخطاء قبل المراجعة الرسمية.assetlinks.json (روابط /j/ التي تفتح التطبيق) وإعداد Firebase.pubspec.yaml — السطر version: 2.5.1+13:
+ = versionName يراه المستخدم.+ = versionCode؛ يجب أن يزيد دائماً. قوقل يرفض رقماً مكرّراً أو أقلّ، ولا يمكن سحبه بعد الرفع.scp fusuite.apk fudex-hz1:/opt/fumeet/web/dl/fusuite-mobile-v0.4.0.apk
# ثم حدّث /opt/fumeet/web/dl/fusuite-ver.json
{"v":5,"url":"https://fumeet.fudex.com.sa/dl/fusuite-mobile-v0.4.0.apk","note":"ما الجديد"}
التطبيق يقارن v بـkBuildNumber ويُظهر بانر «حدّث الآن».fudex-deploy.sh حصراً.export PATH="$PATH:$HOME/development/flutter/bin"
cd fusuite-mobile # أو fuspace-app
flutter pub get
flutter devices # تأكّد من ظهور الجهاز
flutter run # تشغيل مع hot reload
# ⚠️ لا تبنِ داخل مجلد مزامَن بـiCloud (مثل ~/Documents) — انسخ أولاً:
rsync -a --delete --exclude build --exclude .dart_tool --exclude .git \
~/Documents/WorkSpace/fusuite-mobile/ ~/.fdxbuild/fusuite/
cd ~/.fdxbuild/fusuite
flutter pub get
flutter build appbundle --release --no-tree-shake-icons
flutter build apk --release --no-tree-shake-icons
# المخرجات:
# build/app/outputs/bundle/release/app-release.aab
# build/app/outputs/flutter-apk/app-release.apk
✓ Built والحجم يبدو صحيحاً؛ وعلى iOS يرفض codesign التوقيع.
والعلاج الوحيد المُثبَت: انسخ المشروع خارج المجلد المزامَن وابنِ هناك (زمن البناء ينزل من ١٩٠٢ ثانية إلى ٩٥).python3 -c "import zipfile;zipfile.ZipFile('app-release.aab')" # يرمي استثناءً إن كان مبتوراً--no-tree-shake-icons وسينهار البناء بـBad state: No element في قاصّ الأيقونات.lib/
core/ الهوية والشبكة والثيم والمكوّنات المشتركة
modules/ وحدة لكل خدمة (بريد، تقويم، اجتماعات، ملفات، محاضر) [فيوسويت]
ui/ الشاشات (دخول، شات، غرف، اجتماع، حسابي) [فيوسبيس]
android/ إعداد أندرويد + مفتاح التوقيع
ios/ مشروع Xcode [فيوسبيس فقط]
test/ ٣٦٢ اختباراً في فيوسويت — شغّلها بـ flutter test قبل أي رفع
في فيوسويت اقرأ ARCHITECTURE.md وdocs/BUILD.md قبل أي تعديل — فيهما العقود الحاكمة.
وفي فيوسبيس المرجع الكامل في مهارة fuspace-fudex/FLUTTER-APP.md.
الحزمة المشفّرة في القسم ٣ تضمّ: كامل كود المشروعين، مفتاحَي التوقيع
(fuspace-upload.keystore وfusuite-release.jks)، ملفَّي key.properties،
وملفات google-services.json. كلمة المرور تصل من أبوأحمد مباشرةً لا من هذه الصفحة.
# فكّ الحزمة (سيسأل عن كلمة المرور):
openssl enc -d -aes-256-cbc -pbkdf2 -iter 250000 \
-in fudex-apps-handover.tar.gz.enc -out handover.tar.gz
tar -xzf handover.tar.gz
بعد الفكّ ضع كل مفتاح في مكانه (المسارات موصوفة في README-HANDOVER.md داخل الحزمة)، ثمّ تحقّق:
keytool -list -v -keystore fuspace-upload.keystore -alias fuspace | grep SHA-256
.ipa صالحاً للرفع قبل توفّر شهادة توزيع وملف تعريف
وسجلّ تطبيق — وهذه الثلاثة تُنشأ من كونسول آبل بحساب أبوأحمد، ولا تُنشأ من جهاز البناء.
فالناقص إذنٌ وحسابٌ لا كودٌ أو بناء. الروابط أدناه تفتح الصفحات المطلوبة بالضبط.الموجود: اشتراك Apple Developer مدفوع وفعّال (فريق Fudex · TBYZE4288M)،
ومفتاح App Store Connect API (AuthKey_42427HP49T.p8) محفوظ على جهاز أبوأحمد،
ومشروع iOS لفيوسبيس يُبنى فعلاً ويعمل بالعربية (بُني ونُفّذ على المحاكي).
| الغرض | الرابط | مَن ينفّذه |
|---|---|---|
| حساب المطوّر والعضوية | developer.apple.com/account | أبوأحمد |
| Issuer ID لمفتاح الـAPI (الحاجب الأول) | appstoreconnect.apple.com/access/integrations/api | أبوأحمد — نسخ المعرّف فقط |
| شهادة التوزيع Apple Distribution (الحاجب الثاني) | …/resources/certificates/list | أبوأحمد أو تُنشأ بالـAPI بعد Issuer ID |
معرّف التطبيق Bundle ID sa.com.fudex.fuspace | …/resources/identifiers/list | الفريق التقني |
| ملف تعريف التوزيع Provisioning Profile | …/resources/profiles/list | الفريق التقني |
| سجلّ التطبيق في المتجر (الحاجب الثالث) | appstoreconnect.apple.com/apps ← زر + New App | أبوأحمد |
| TestFlight (اختبار قبل النشر) | داخل صفحة التطبيق ← تبويب TestFlight | الفريق التقني |
| أداة الرفع Transporter | Transporter على ماك آب ستور | الفريق التقني |
| سياسة الخصوصية والشروط (إلزامية لآبل أيضاً) | apps.fudex.com.sa | جاهزة |
sa.com.fudex.fuspace.flutter build ipa ← رفع بـTransporter ← TestFlight ← المتجر.الناقص — ثلاثة، كلّها من كونسول آبل:
sa.com.fudex.fuspace + ملف تعريف توزيع (Provisioning Profile).بعدها: flutter build ipa ثم الرفع عبر Transporter أو xcrun altool، ثم TestFlight قبل المتجر.
ios/ غير موجود). إنشاؤه عملٌ منفصل:
توليد المشروع، ضبط الأذونات (ميكروفون/كاميرا/تنبيهات)، مفتاح APNs في Firebase، ثم البناء والتوقيع.
قدّر له جلسة عمل كاملة — ولا يعطّل إطلاق أندرويد.| الناقص | لماذا يوقف الإطلاق | مَن يوفّره |
|---|---|---|
| حساب اختبار للمراجع (بريد + كلمة مرور) | المراجع لا يستطيع تجاوز شاشة الدخول ⇒ رفض شبه مؤكّد | فريق التقنية — حساب فيودكس مخصّص للمراجعة، صلاحيات محدودة |
| أصول صفحة المتجر: صورة مميّزة 1024×500 و٢–٨ لقطات لكل تطبيق | لا يُقبل نشر التطبيق بدونها | فريق التصميم (يمكن توليدها عبر FuArt) |
| وصف المتجر عربي + إنجليزي | حقل إلزامي | جاهز نصوص للّصق في القسم ٣٫٥ — للمراجعة والتعديل |
| أيقونة 512×512 لفيوسويت بجودة أصلية | المرفقة مكبّرة من 192px — مقبولة تقنياً وأقلّ حِدّة | التصميم |
| Apple: Issuer ID + شهادة توزيع + سجلّ التطبيق | لا رفع لآبل بدونها | أبوأحمد (من كونسول آبل) |
| مشروع iOS لفيوسويت | غير موجود | فريق التقنية — جلسة عمل منفصلة |
| صلاحيات أعضاء الفريق على Play Console | لا يستطيعون الرفع | أبوأحمد — دعوة من Users and permissions |
| جاهز فعلاً: الحزم الموقّعة · سياستا الخصوصية · الشروط والأحكام (عربي/إنجليزي) · صفحة التواصل · نصوص المتجر · مفاتيح التوقيع · حساب بلاي المدفوع · اشتراك آبل · Firebase. | ||
fudex-deploy.sh.