بناء ونشر التطبيق المحمول هو عملية تحويل الشيفرة المصدرية إلى ملف قابل للتثبيت (APK، AAB، IPA) وتحميله إلى متاجر التطبيقات. وفقاً لـ Google Play Console (2025)، Android App Bundle (AAB) هو الصيغة الإلزامية للنشر على Google Play منذ أغسطس 2021. في هذه المقالة سنتعرف على صيغ البناء والترجمة وتوقيع الشيفرة وعملية النشر والاختبار التجريبي.
أهم النقاط
APK (Android Package Kit) — الصيغة التقليدية لبناء ونشر التطبيقات المحمولة على Android. يحتوي APK على جميع الشيفرة والموارد وبيان التطبيق. AAB (Android App Bundle) — صيغة قدمتها Google في 2018 وأصبحت إلزامية للتطبيقات الجديدة اعتباراً من أغسطس 2021. AAB لا يتم تثبيته مباشرة — يقوم Google Play بإنشاء APK محسّن لكل جهاز من AAB ديناميكياً.
مزايا AAB: حجم التحميل أصغر بنسبة 15% في المتوسط (عن طريق توصيل الموارد الضرورية فقط: كثافات الشاشة الصحيحة واللغات وهياكل المعالجات). يدعم AAB أيضاً التوصيل المعياري — يمكنك تحميل الوحدات عند الطلب (Play Feature Delivery) أو بشكل مؤجل (Play On-Demand). بالنسبة للمطورين، AAB إلزامي؛ للتوزيع خارج Google Play (التثبيت الجانبي، الأسواق) — فقط APK.
IPA (iOS App Store Package) — ملف التثبيت لنظام iOS، وهو أرشيف ZIP يحتوي على تطبيق موقع. يحتوي IPA على مجلد Payload/ مع حزمة .app و Provisioning Profile والتوقيع. يتم بناء IPA فقط على macOS عبر Xcode، الذي ينشئ أرشيفاً (.xcarchive) ويصدر IPA. للتوزيع عبر App Store، يتم توقيع IPA باستخدام Apple Distribution Certificate؛ للتوزيع Ad Hoc أو Enterprise — بالشهادات المقابلة.
| المعامل | APK | AAB | IPA |
|---|---|---|---|
| المنصة | Android | Android (Google Play) | iOS |
| الصيغة | أرشيف ZIP | أرشيف ZIP | أرشيف ZIP |
| التثبيت المباشر | نعم | لا (عبر Google Play) | عبر App Store / MDM |
| التوقيع | Keystore (JKS) | Keystore (JKS/PEPK) | Apple Certificate |
| App Thinning | لا | نعم (تلقائياً) | نعم (Slicing، Bitcode) |
JIT (Just-In-Time) — ترجمة الشيفرة أثناء تنفيذ التطبيق، مما يؤثر على سرعة البناء والنشر. على Android حتى الإصدار 5.0 (Lollipop) كان يُستخدم Dalvik VM مع ترجمة JIT. عند كل تشغيل للتطبيق، كان يتم تحويل bytecode DEX إلى شيفرة آلية «أثناء التشغيل». العيب: بطء عند التشغيل الأول واستهلاك إضافي للطاقة. AOT (Ahead-Of-Time) — ترجمة الشيفرة قبل تشغيل التطبيق، أثناء التثبيت. بدءاً من Android 7.0 (Nougat)، يقوم ART (Android Runtime) بترجمة التطبيق بالكامل أثناء التثبيت.
ART (Android Runtime) — بيئة التشغيل التي حلت محل Dalvik في Android 5.0. يستخدم ART نهجاً هجيناً: ترجمة AOT أثناء التثبيت + JIT للطرق التي يتم تنفيذها بشكل متكرر. هذا يجمع بين سرعة AOT (بدء تشغيل سريع) ومرونة JIT (تحسين تكيفي). النتيجة: زاد أداء تطبيقات Android بنسبة 20-30% مقارنة بـ Dalvik. بالنسبة للمطورين، الانتقال إلى ART شفاف — الشيفرة لا تتطلب تغييرات.
Bitcode — تمثيل وسيط للشيفرة (IR) تستخدمه Apple لإعادة ترجمة IPA لهياكل معالجات مختلفة. Bitcode اختياري: لتطبيقات iOS هو مفعل افتراضياً، لـ watchOS و tvOS إلزامي. يمكن لـ Apple إعادة ترجمة Bitcode عند إصدار معالجات جديدة دون مشاركة المطور. App Thinning — تقنية Apple التي تتضمن Slicing (توصيل الموارد الضرورية فقط للجهاز) و On-Demand Resources (تحميل الموارد عند الطلب). يقلل App Thinning حجم التحميل من App Store بنسبة 30-50%.
DEX — صيغة bytecode لنظام Android، يتم تنفيذها بواسطة ART/Dalvik. يتم ترجمة شيفرة Kotlin/Java المصدرية إلى ملفات class، ثم إلى DEX عبر dx أو d8 (أداة حديثة وأسرع). Multidex — آلية للتطبيقات التي تتجاوز حد 65,536 طريقة في ملف DEX واحد. في المشاريع الحديثة، يتم تفعيل multidex تلقائياً إذا كان targetSdkVersion >= 21.
Keystore — ملف يحتوي على المفتاح الخاص والشهادة لتوقيع تطبيق Android أثناء البناء. يتم إنشاء Keystore عبر keytool (الأمر -genkey) أو Android Studio. مهم: لا يمكن فقدان Keystore — بدونه لن تتمكن من تحديث التطبيق على Google Play. معاملات التوقيع: keyAlias، keyPassword، storePassword و storeFile. الصيغة: JKS (Java KeyStore) أو PEPK (Play Encrypted Private Key) لـ AAB.
App Bundle ID (Android) — المعرف الفريد للتطبيق بترميز الحزمة (com.example.app). Version Code — عدد صحيح للترقيم الداخلي للإصدارات (كل بناء جديد يزيده). Version Name — سلسلة نصية تظهر للمستخدم (1.2.3). يتم تعيين هذه المعاملات في build.gradle على مستوى التطبيق.
Apple Certificate — شهادة رقمية تتحقق من هوية المطور. الأنواع: Development (للتصحيح)، Distribution (لـ App Store)، Ad Hoc (للتوزيع المحدود). يتم إنشاء الشهادات في Apple Developer Account وتنزيلها إلى Keychain. Provisioning Profile — ملف يربط الشهادة و App ID (Bundle Identifier) وقائمة الأجهزة المسموح بها. بدون Provisioning Profile، لن يعمل التطبيق على الجهاز.
Bundle ID (iOS) — المعرف الفريد للتطبيق (com.example.app). Build Number — رقم البناء، يزداد مع كل build. Marketing Version — الإصدار الذي يظهر للمستخدم. إدارة الإصدارات: لنظام iOS، يتم تعيين المعاملات في Info.plist و Project Settings؛ لنظام Android — في build.gradle. في IT Sectr، نقوم بأتمتة تحديثات الإصدارات عبر Fastlane — مما يزيل الأخطاء البشرية أثناء الإصدار.
Google Play Console — أداة لنشر تطبيقات Android. العملية: تسجيل حساب مطور ($25 مرة واحدة)، إنشاء تطبيق، تعبئة البيانات الوصفية (الاسم، الوصف، لقطات الشاشة، الفئة)، تحميل AAB، تكوين الأسعار والتوزيع، المراجعة. تتحقق Google من التطبيق تلقائياً (الفيروسات، الامتثال للسياسات) ويدوياً لبعض الفئات. تستغرق المراجعة من بضع ساعات إلى 2-3 أيام.
App Store Connect — منصة Apple لنشر تطبيقات iOS. العملية: حساب مطور Apple ($99/سنة)، إنشاء تطبيق في App Store Connect، تحضير IPA في Xcode (Archive → Distribute App → App Store Connect)، تحميل عبر Transporter أو Xcode، تعبئة البيانات الوصفية، إرسال للمراجعة. App Review — المراجعة اليدوية من Apple قد تستغرق من 24 ساعة إلى 7 أيام. أسباب الرفض النموذجية: أزرار لا تعمل، محتوى غير مكتمل، طلب أذونات دون شرح.
TestFlight — الأداة الرسمية من Apple للاختبار التجريبي لتطبيقات iOS. يدعم TestFlight Internal Testing (حتى 100 مختبر عبر البريد الإلكتروني، بدون مراجعة) و External Testing (حتى 10,000 مختبر، مع مراجعة Apple). البناءات متاحة لمدة 90 يوماً، وبعد ذلك يجب تحميل بناء جديد. يقوم TestFlight بتحديث التطبيق تلقائياً لدى المختبرين عند تحميل بناء جديد.
Internal Testing (Android) — حتى 100 مختبر، بدون مراجعة Google، البناء متاح فوراً. Closed Beta — حتى 1000 مختبر عبر البريد الإلكتروني أو Google Groups، بدون مراجعة. Open Beta — عدد غير محدود من المختبرين عبر رابط عام، مع مراجعة Google. Staged Rollout — زيادة تدريجية لنسبة المستخدمين الذين يتلقون التحديث (5% ← 20% ← 50% ← 100%). هذه هي الطريقة الأكثر أماناً للإصدار.
App Thinning (iOS) — تقليل تلقائي لحجم IPA المُحمَّل: Slicing (موارد ضرورية فقط للجهاز)، Bitcode (تحسين للمعالج)، On-Demand Resources (تحميل عند الطلب). في IT Sectr، نستخدم TestFlight للاختبار التجريبي لنظام iOS و Internal Testing لنظام Android — وهذا يسمح لنا باكتشاف المشكلات قبل الإصدار الجماعي.
الأسئلة الشائعة
APK — ملف تثبيت عالمي، يعمل على أي جهاز. AAB — صيغة لـ Google Play تنشئ APK الأمثل لكل جهاز. حجم التحميل عبر AAB أقل بنسبة 15%. لـ Google Play، AAB إلزامي؛ للتثبيت الجانبي — APK.
لن تتمكن من تحديث التطبيق على Google Play — سيتعين عليك إنشاء تطبيق جديد باسم حزمة جديد. احفظ Keystore في مكان آمن (مدير كلمات المرور، Git مشفر). Google Play App Signing (استخدام مفاتيح Google) يقلل من هذا الخطر.
Google Play — $25 مرة واحدة لحساب المطور. App Store — $99/سنة. كلا المبلغين يشملان عدداً غير محدود من التطبيقات. لنظام iOS تحتاج أيضاً إلى Mac (من $999) أو استئجار Mac سحابي.
Staged Rollout — طرح تدريجي للتحديث: أولاً 5% من المستخدمين، ثم 20%، 50% و 100%. إذا تم اكتشاف أعطال في أي مرحلة، يتوقف الطرح. متاح في Google Play Console.
لنظام Android — لا، يمكنك تثبيت APK على الجهاز عبر USB أو المحاكي بدون حساب. لنظام iOS — نعم، بدون حساب $99/سنة، سيعمل التطبيق فقط على المحاكي، وليس على جهاز حقيقي.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.