إنشاء حِزمة تطبيق مفعّلة بشكل فوري

تحذير: لن تكون "تطبيقات Google Play الفورية" متاحة بعد الآن. اعتبارًا من ديسمبر 2025، لن يكون بإمكانك نشر التطبيقات الفورية من خلال Google Play، كما أنّ جميع واجهات برمجة التطبيقات الفورية في "خدمات Google Play" ستتوقف عن العمل. لن يعرض Play "التطبيقات الفورية" للمستخدمين بعد الآن باستخدام أي آلية.

نُجري هذا التغيير استنادًا إلى ملاحظات المطوّرين واستثماراتنا المستمرة لتحسين المنظومة المتكاملة منذ طرح ميزة "تطبيقات Google Play الفورية".

لمواصلة تحسين معدّل اكتساب المستخدمين، ننصح المطوّرين بتوجيه المستخدمين إلى تطبيقهم أو لعبتهم العادية باستخدام الروابط لصفحات معيّنة لإعادة توجيههم إلى مسارات أو ميزات محدّدة عند الحاجة.

يمكنك إنشاء تجربة "تطبيق فوري على Google Play" من خلال تضمينها كجزء من حِزمة تطبيق Android. يُطلق على هذه الحزمة اسم حزمة تطبيقات تم تفعيل ميزة التطبيقات الفورية فيها. يوضّح لك هذا المستند كيفية إعداد بيئة التطوير لحِزم التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها، بالإضافة إلى كيفية إعداد حزمة تطبيقات تم تفعيل ميزة التطبيقات الفورية فيها وإنشائها واختبارها ونشرها.

إذا كان لديك مشروع تطبيق فوري حالي يستخدم الميزة المتوقّفة نهائيًا الإضافة (com.android.feature)، تعرَّف على كيفية نقل تطبيقك الفوري ليتوافق مع "مجموعات حزمات تطبيق Android".

إعداد بيئة التطوير

لتوفير تجربة فورية ضمن حزمة تطبيق، يجب أن يكون لديك إذن الوصول إلى حزمة تطوير البرامج (SDK) الخاصة بـ "التطبيقات الفورية على Google Play". يمكنك تثبيت حزمة SDK باستخدام إحدى الطرق التالية:

بالإضافة إلى ذلك، إذا أردت اختبار تجربة التطبيق الفوري محليًا، عليك الحصول على إذن الوصول إلى جهاز افتراضي أو جهاز حقيقي.

التعرّف على شروط التنفيذ المطلوبة

تتيح "تطبيقات Google Play الفورية" تشغيل حِزم التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها في نوع خاص من وضع الحماية SELinux لتعزيز الأمان. تسمح هذه البيئة التجريبية بمجموعة فرعية من الأذونات، بالإضافة إلى أنواع محدودة من التفاعلات مع التطبيقات الأخرى. توضّح الأقسام التالية خصائص هذه البيئة التجريبية بمزيد من التفصيل.

الأذونات والعمليات المتوافقة

يمكن لحِزم التطبيقات التي تتيح تشغيل التطبيقات الفورية استخدام الأذونات من القائمة التالية فقط:

التعامل مع الأذونات الشائعة غير المتوافقة

في ما يلي قائمة بالأذونات الشائعة غير المتوافقة التي يجب إزالتها من تطبيقك، بالإضافة إلى مسار النقل المقترَح لكل منها:

  • ACCESS_WIFI_STATE: استخدِم ACCESS_NETWORK_STATE، الذي من المفترض أن يقدّم معلومات مشابهة لتلك التي يقدّمها ACCESS_WIFI_STATE.
  • BILLING: هذا إذن تم إيقافه نهائيًا. استخدِم Google Play Billing Library، التي لم تعُد تتطلّب الإذن com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: لا يمكن للتطبيقات الفورية الوصول إلى مساحة التخزين الخارجية، لذا يجب استخدام مساحة التخزين الداخلية بدلاً من ذلك.
  • com.google.android.c2dm.permission.RECEIVE وpermission.C2D_MESSAGE: تم إيقاف C2DM نهائيًا. انتقِل إلى خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" ‏ (FCM). لا يحتاج FCM إلى أي أذونات إضافية ليعمل.

بالإضافة إلى ذلك، لا يمكن لمجموعات حزمات تطبيق Android التي تم تفعيل ميزة التطبيقات الفورية فيها إجراء ما يلي:

الوصول إلى التطبيقات المثبَّتة

عند تطوير تجربة فورية، ضَع في اعتبارك أنّه لا يمكنها التفاعل مع التطبيقات المثبَّتة على الجهاز إلا إذا تحقّق أحد الشرطَين التاليَين:

  • تم ضبط قيمة العنصر android:visibleToInstantApps في نشاط واحد أو أكثر ضمن تطبيق مثبَّت على true. يتوفّر هذا العنصر للتطبيقات التي تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.
  • يحتوي تطبيق مثبَّت على فلتر أهداف يتضمّن CATEGORY_BROWSABLE.
  • تتم التجربة الفورية من خلال إرسال هدف باستخدام الإجراء ACTION_SEND أو ACTION_SENDTO أو ACTION_SEND_MULTIPLE.

ضبط مشروعك للتجارب الفورية

لكي تكون حزمة التطبيقات متوافقة مع "تطبيقات Google Play الفورية"، يجب إعداد العديد من جوانب حزمة التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها بعناية. توضّح الأقسام التالية هذه الاعتبارات.

تعريف تبعيات المشروع

لاستخدام واجهات برمجة التطبيقات "التطبيقات الفورية على Google Play" في تطبيقك، عليك تضمين البيان التالي في ملف إعداد build.gradle لوحدة تطبيقك:

Groovy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

تحديد رموز الإصدار الصحيحة

يجب أن يكون رمز إصدار التجربة الفورية لتطبيقك أقل من رمز إصدار التطبيق القابل للتثبيت، إذ يُتوقّع أن ينتقل المستخدمون من تجربة "التطبيقات الفورية من Google" إلى تنزيل التطبيق وتثبيته على أجهزتهم. يعدّ إطار عمل Android هذا الانتقال بمثابة تحديث للتطبيق.

لضمان اتّباع نظام تحديد الإصدارات الذي يتوقّعه المستخدمون، اتّبِع إحدى الاستراتيجيتَين التاليتَين:

  • أعِد بدء رموز الإصدارات للتطبيق الفوري على Google Play من 1.
  • زِد رمز إصدار حِزمة APK القابلة للتثبيت بمقدار كبير، مثل 1000، لضمان توفّر مساحة كافية لزيادة رقم إصدار التجربة الفورية.

لا بأس بتطوير تطبيقك الفوري وتطبيقك القابل للتثبيت في مشروعَين منفصلَين في Android Studio. ومع ذلك، إذا اخترت ذلك، عليك اتّخاذ الخطوات التالية لنشر تطبيقك على Google Play:

  1. استخدِم اسم الحزمة نفسه في كلا مشروعَي "استوديو Android".
  2. في Google Play Console، حمِّل كلا الصيغتين إلى التطبيق نفسه.

لمزيد من التفاصيل حول تحديد إصدار تطبيقك، يُرجى الاطّلاع على مقالة تحديد إصدار تطبيقك.

تعديل إصدار وضع الحماية المستهدف

يجب تعديل ملف AndroidManifest.xml لتطبيقك الفوري لكي يستهدف بيئة وضع الحماية التي تتيحها "تطبيقات Google Play الفورية". يمكنك إكمال هذا التعديل من خلال إضافة السمة android:targetSandboxVersion إلى عنصر <manifest> في تطبيقك، كما هو موضّح في مقتطف الرمز البرمجي التالي:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

لمزيد من المعلومات، يُرجى الاطّلاع على المستندات المتعلقة بالسمة targetSandboxVersion.

تضمين وحدات التطبيق التي تم تفعيل ميزة التطبيقات الفورية فيها

يمكنك الإفصاح عن أنّ حِزمة تطبيقك تتوافق مع التجارب الفورية باستخدام إحدى الطريقتَين التاليتَين:

  • إذا كانت لديك حِزمة تطبيق حالية تحتوي على وحدة أساسية فقط، يمكنك تفعيل ميزة التطبيقات الفورية في حِزمة التطبيق على النحو التالي:

    1. افتح لوحة المشروع (Project) من خلال اختيار عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من شريط القوائم.
    2. انقر بزر الماوس الأيمن على الوحدة الأساسية، والتي يُطلق عليها عادةً اسم "app"، ثم اختَر إعادة تصميم > تفعيل دعم "التطبيقات الفورية".
    3. في مربّع الحوار الذي يظهر، اختَر الوحدة الأساسية من القائمة المنسدلة.
    4. انقر على موافق.

    يضيف "استوديو Android" التعريف التالي إلى بيان الوحدة:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • إذا كانت لديك حِزمة تطبيق حالية تحتوي على وحدات متعددة، يمكنك إنشاء وحدة ميزات مفعَّلة للتطبيقات الفورية. تؤدي هذه العملية أيضًا إلى تفعيل الوحدة الأساسية في تطبيقك على الفور، ما يمنحك خيار إتاحة نقاط دخول متعددة للتطبيق الفوري داخل تطبيقك.

إتاحة تسجيل الدخول

إذا كانت التجربة الفورية للتطبيق تتيح للمستخدمين تسجيل الدخول، يجب أن تتوافق حزمة التطبيق التي تم تفعيل ميزة التطبيقات الفورية فيها مع ميزة "Smart Lock لكلمات المرور على Android". إذا كنت بصدد إنشاء لعبة"تشغيل فوري"، عليك استخدام ميزة تسجيل الدخول في خدمات ألعاب Google Play بدلاً من ذلك.

توفير بيئة التنفيذ

لضمان التوافق مع بيئة الاختبار المعزولة SELinux التي يتم فيها تشغيل التجارب الفورية، يجب مراعاة ما يلي عند إنشاء حزمة تطبيق تم تفعيل ميزة التطبيقات الفورية فيها:

  • لا تشارك قيمة myUid()، وهو معرّف المستخدم (UID) الذي تم تعيينه من خلال النواة لعملية تطبيقك.
  • إذا كان تطبيقك يستهدف الإصدار 8.1 من نظام التشغيل Android (المستوى 27 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم، عليك إنشاء ملف إعداد أمان الشبكة وضبط cleartextTrafficPermitted على false. لا تتوافق التجارب الفورية مع زيارات HTTP. بالنسبة إلى التطبيقات التي تستهدف الإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث، يتم إيقاف حركة البيانات غير المشفرة تلقائيًا.
  • يظلّ التطبيق الذي يوفّر تجربة فورية مثبّتًا على جهاز المستخدم إلى أن تتم محو ذاكرة التخزين المؤقت للتجربة الفورية، ويحدث ذلك في إحدى الحالات التالية:

    • يتم جمع البيانات غير الضرورية من ذاكرة التخزين المؤقت للتجربة الفورية للتطبيق لأنّ الذاكرة المتوفّرة على الجهاز أصبحت محدودة.
    • يعيد المستخدم تشغيل جهازه.

    وفي حال حدوث أي من العمليتين، على المستخدم إعادة تنزيل التجربة الفورية ليتمكّن من التفاعل معها.

  • إذا كانت مساحة التخزين المتبقية في النظام قليلة جدًا، من المحتمل أن تتم إزالة بيانات المستخدم الخاصة بـ "التجربة الفورية" من مساحة التخزين الداخلية. لذلك، ننصحك بمزامنة بيانات المستخدمين بشكل دوري مع خادم تطبيقك للحفاظ على مستوى تقدّم المستخدم.

إضافة منطق لسير عمل التجربة الفورية

بعد إعداد حِزمة تطبيقك لتتوافق مع التجارب الفورية، أضِف المنطق الموضّح في الأقسام التالية.

التحقّق مما إذا كان التطبيق يوفّر تجربة فورية

إذا كانت بعض منطق تطبيقك يعتمد على ما إذا كان المستخدم يتفاعل مع التجربة الفورية، استدعِ الطريقة isInstantApp(). تعرض هذه الطريقة true إذا كانت العملية الجارية حاليًا هي تجربة فورية.

عرض رسالة تطلب التثبيت

إذا كنت بصدد إنشاء نسخة تجريبية من تطبيقك أو لعبتك، تتيح لك ميزة "التطبيقات الفورية على Google Play" عرض طلب ضمن التجربة الفورية يدعو المستخدمين إلى تثبيت التجربة الكاملة على أجهزتهم. لعرض هذا الطلب، استخدِم طريقة InstantApps.showInstallPrompt() كما هو موضّح في مقتطف الرمز التالي:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

نقل البيانات إلى تجربة مثبَّتة

إذا أعجبت المستخدم التجربة الفورية، قد يقرّر تثبيت تطبيقك. ولتقديم تجربة جيدة للمستخدم، من المهم نقل بياناته من التجربة الفورية إلى الإصدار الكامل من تطبيقك.

إذا كان المستخدم يستخدم جهازًا يعمل بنظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) أو إصدارًا أحدث، وإذا كان تطبيقك يحدّد targetSandboxVersion بقيمة 2، سيتم نقل بيانات المستخدم تلقائيًا إلى الإصدار الكامل من تطبيقك. وفي ما عدا ذلك، عليك نقل البيانات يدويًا. لإجراء ذلك، استخدِم إحدى واجهات برمجة التطبيقات التالية:

  • بالنسبة إلى المستخدمين الذين لديهم أجهزة تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، استخدِم واجهة برمجة التطبيقات الخاصة بملفات تعريف الارتباط - تطبيق نموذجي
  • إذا كان بإمكان المستخدمين التفاعل مع تجربتك على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، أضِف توافقًا مع Storage API - تطبيق نموذجي

إنشاء حِزمة التطبيق

يمكنك استخدام &quot;استوديو Android&quot; أو واجهة سطر الأوامر لإنشاء حزمة تطبيقك المتوافق مع التطبيقات الفورية.

استوديو Android

باستخدام "استوديو Android"، يمكنك إنشاء حزمة تطبيقك من خلال اختيار إنشاء > إنشاء حِزم/حِزم APK > إنشاء حِزم. لمزيد من المعلومات حول إنشاء مشروعك، يُرجى الاطّلاع على إنشاء مشروعك.

واجهة سطر الأوامر

يمكنك أيضًا إنشاء حِزمة التطبيق من سطر الأوامر باستخدام Gradle.

توافُق البِنى 64 بت

يجب أن تتوافق التطبيقات المنشورة على Google Play مع بنية 64 بت. تؤدي إضافة إصدار 64 بت من تطبيقك إلى تحسين الأداء وتجهيز تطبيقك للأجهزة التي تتضمّن أجهزة تعمل بالإصدار 64 بت فقط. مزيد من المعلومات حول توافق التطبيقات مع إصدار 64 بت

اختبار التجربة الفورية

قبل نشر حزمة تطبيقك التي تم تفعيل ميزة التطبيقات الفورية فيها، يمكنك اختبار تجربة التطبيق الفوري من أحد المواقع الجغرافية التالية للتأكّد من عملها:

استوديو Android

لاختبار تجربة التطبيق الفوري على جهاز محلي باستخدام &quot;استوديو Android&quot;، أكمِل الخطوات التالية:

  1. إذا كان لديك إصدار مثبَّت من تطبيقك على جهاز الاختبار، عليك إلغاء تثبيته.
  2. في Android Studio، من خيارات التثبيت التي تظهر في علامة التبويب عام ضمن تشغيل/تصحيح الأخطاء في مربّع الحوار، ضَع علامة في مربّع الاختيار نشر كتطبيق فوري.
  3. انقر على تشغيل > تشغيل في شريط القوائم، أو انقر على تشغيل في شريط الأدوات، ثم اختَر الجهاز الذي تريد اختبار تجارب التطبيق الفوري عليه. يتم تحميل التجربة الفورية لتطبيقك على جهاز الاختبار الذي اخترته.

واجهة سطر الأوامر

لاختبار تجربة تطبيقك الفورية على جهاز محلي باستخدام سطر الأوامر، أكمِل الخطوات التالية:

  1. إذا كان لديك إصدار مثبَّت من تطبيقك على جهاز الاختبار، عليك إلغاء تثبيته.
  2. حمِّل تطبيقك الفوري بشكل جانبي وشغِّله على جهاز الاختبار من خلال إدخال الأمر التالي:
ia run output-from-build-command

مسار الاختبار الداخلي

لاختبار التجربة الفورية لتطبيقك من &quot;متجر Play&quot; أو من خلال بانر على موقعك الإلكتروني، عليك نشر التطبيق في مسار الاختبار الداخلي على Play Console.

لنشر تطبيقك في مسار الاختبار الداخلي، أكمِل الخطوات التالية:

  1. حمِّل حِزمة تطبيقك باتّباع الخطوات الواردة في دليل تحميل حِزمة تطبيقك إلى Play Console.
  2. جهِّز الحِزمة التي تم تحميلها لإصدار في مسار الاختبار الداخلي. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الدعم حول كيفية إعداد الإصدارات وطرحها.
  3. سجِّل الدخول إلى حساب أحد المختبِرين الداخليين على جهاز، ثم شغِّل تجربة التطبيق الفوري من إحدى مساحات العرض التالية:

    • زر التجربة الآن من بطاقة بيانات تطبيقك على "متجر Play"
    • رابط من بانر على الموقع الإلكتروني لتطبيقك

نشر حِزمة التطبيق في قناة الإصدار العلني

لنشر حِزمة تطبيقك المتوافق مع التطبيقات الفورية، أكمِل الخطوات التالية:

  1. إذا لم يسبق لك ذلك، وقِّع حِزمة تطبيقك باستخدام مفتاح إصدار وحمِّل حِزمة التطبيق إلى Play Console.
  2. في Play Console، افتح إدارة الإصدار > تطبيقات Android الفورية، ثم انتقِل إلى قناة الإصدار العلني للتطبيق الفوري.
  3. انقر على التحديث من المكتبة، ثم اختَر حِزمة التطبيق المتوافق مع التطبيقات الفورية التي حمّلتها.

اختيار مكان نشر تجربتك الفورية

يمكنك إطلاق تجربة فورية لتطبيقك في مجموعة فرعية من البلدان والمناطق التي يمكن للمستخدمين تثبيت تطبيقك فيها. وتكون هذه الإمكانية مفيدة في الحالات التي تريد فيها الترويج للتجربة الفورية لتطبيقك للمستخدمين المقيمين في مجموعة معيّنة من البلدان والمناطق.

مراجع إضافية

لمزيد من المعلومات حول إنشاء تجارب فورية و"مجموعة حزمات تطبيق Android"، راجِع المراجع التالية:

فيديو: تجميع تطبيق في تطبيق فوري
تعرَّف على كيفية إضافة تجربة فورية إلى "مجموعة حزمات تطبيق Android" في هذه الجلسة من مؤتمر Android Dev Summit لعام 2018.
فيديو: نشر تطبيقات أصغر حجمًا باستخدام "مجموعة حزمات تطبيق Android"
تعرَّف على كيفية مساعدة حِزم التطبيقات في تطوير تطبيقك بشكل أسرع وإنشاء حِزم APK أصغر حجمًا للمستخدمين.
ورشة عمل حول الترميز: مجموعة حزمات تطبيق Android الأولى
دليل مفصّل حول كيفية إنشاء "مجموعة حزمات تطبيق Android" وإضافة ميزات إليها
تنسيق "مجموعة حزمات تطبيق Android"
مزيد من المعلومات حول كيفية تنظيم برنامج سطر الأوامر bundletool لحِزمة تطبيق من رمز تطبيقك وموارده