توزيع تطبيقات Android على المختبِرين باستخدام واجهة سطر الأوامر في Firebase


يوضّح هذا الدليل كيفية توزيع حِزم APK على المختبِرين باستخدام واجهة سطر الأوامر Firebase. تتيح لك أداة سطر الأوامر تحديد المختبِرين وملاحظات الإصدار لإنشاء إصدار، ثم توزيعه وفقًا لذلك.

قبل البدء

  1. أضِف Firebase إلى مشروع Android، في حال لم يسبق لك إجراء ذلك.

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

  2. افتح صفحة App Distribution في وحدة تحكّم Firebase. اختَر مشروع Firebase عند مطالبتك بذلك، ثم اختَر تطبيقك باستخدام مبدّل التطبيقات، وانقر على البدء.

الخطوة 1: إنشاء تطبيقك

عندما تكون مستعدًا لتوزيع إصدار تجريبي من تطبيقك على المختبِرين، أنشئ حِزمة APK باستخدام طريقتك العادية. يجب توقيع حزمة APK باستخدام مفتاح تصحيح الأخطاء أو مفتاح توقيع التطبيق.

الخطوة 2: توزيع تطبيقك على المختبِرين

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

  1. ثبِّت أحدث إصدار من Firebase CLI أو حدِّث إليه (ننصحك بتنزيل الملف الثنائي المستقل الخاص بواجهة سطر الأوامر والمتوافق مع نظام التشغيل). احرص على تسجيل الدخول واختبار إمكانية الوصول إلى مشاريعك.
  2. نفِّذ الأمر appdistribution:distribute لتحميل تطبيقك وتوزيعه على المختبِرين. استخدِم المَعلمات التالية لضبط التوزيع:

    appdistribution:distribute options
    --app

    مطلوب: معرّف تطبيق Firebase الخاص بتطبيقك. يمكنك العثور على معرّف التطبيق في وحدة تحكّم Firebase، وذلك في صفحة الإعدادات العامة.

    --app 1:1234567890:android:0a1b2c3d4e5f67890
    --token

    رمز مميّز لإعادة التحميل يتم عرضه عند مصادقة بيئة CI باستخدام واجهة سطر الأوامر Firebase (يمكنك الاطّلاع على استخدام واجهة سطر الأوامر مع أنظمة CI لمزيد من المعلومات).

    --token "$FIREBASE_TOKEN"
    --release-notes
    --release-notes-file

    ملاحظات الإصدار لهذا الإصدار.

    يمكنك إما تحديد ملاحظات الإصدار مباشرةً:

    --release-notes "Text of release notes"

    أو حدِّد مسار ملف نص عادي:

    --release-notes-file "/path/to/release-notes.txt"
    --testers
    --testers-file

    عناوين البريد الإلكتروني للمختبِرين الذين تريد دعوتهم

    يمكنك تحديد المختبِرين كقائمة مفصولة بفواصل تتضمّن عناوين البريد الإلكتروني على النحو التالي:

    --testers "ali@example.com, bri@example.com, cal@example.com"

    أو يمكنك تحديد مسار إلى ملف نص عادي يحتوي على قائمة قيم مفصولة بفاصلة من عناوين البريد الإلكتروني:

    --testers-file "/path/to/testers.txt"
    --groups
    --groups-file

    مجموعات المختبِرين التي تريد دعوتها (راجِع مقالة إدارة المختبِرين). يتم تحديد المجموعات باستخدام أسماء مستعارة للمجموعات، ويمكنك البحث عنها في وحدة تحكّم Firebase.

    يمكنك تحديد المجموعات كقائمة مفصولة بفواصل:

    --groups "qa-team, trusted-testers"

    أو يمكنك تحديد مسار إلى ملف نص عادي يحتوي على قائمة قيم مفصولة بفاصلة بأسماء المجموعات:

    --groups-file "/path/to/groups.txt"
    --debug

    علامة يمكنك تضمينها لطباعة ناتج سجلّ مفصّل.

    --test-devices
    --test-devices-file

    الأجهزة الاختبارية التي تريد إجراء اختبارات وكيل اختبار التطبيق عليها

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

    --test-devices: "model=shiba,version=34,locale=en,orientation=portrait"

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

    --test-devices-file: "/path/to/test-devices.txt"
    --test-username

    اسم المستخدم لتسجيل الدخول التلقائي الذي سيتم استخدامه أثناء اختبارات وكيل اختبار التطبيق

    --test-password
    --test-password-file

    كلمة المرور التي سيتم استخدامها لتسجيل الدخول تلقائيًا أثناء اختبارات وكيل اختبار التطبيق

    يمكنك أيضًا تحديد مسار إلى ملف نص عادي يحتوي على كلمة مرور:

    --test-password-file: "/path/to/test-password.txt"
    --test-username-resource

    اسم المورد لحقل اسم المستخدم الذي سيتم استخدامه لتسجيل الدخول تلقائيًا أثناء اختبارات وكيل اختبار التطبيق

    --test-password-resource

    اسم المورد لحقل كلمة المرور الذي سيتم استخدامه لتسجيل الدخول تلقائيًا أثناء اختبارات وكيل اختبار التطبيق

    --test-non-blocking

    في حال ضبط هذا الخيار عند تنفيذ اختبارات وكيل اختبار التطبيق، سيبدأ الأمر الاختبارات ثم يعود على الفور بدلاً من انتظار اكتمالها. للاطّلاع على نتائج الاختبار، انتقِل إلى "وحدة تحكّم Firebase". في حال عدم ضبط هذه العلامة، سيتم حظر الأمر إلى أن تكتمل الاختبارات، وسيتم الخروج برمز خطأ في حال فشل أي من الاختبارات.

    --results-bucket

    حزمة مخصّصة على Google Cloud Storage (GCS) يتم فيها تخزين نتائج الاختبار. في حال ترك هذا الحقل فارغًا، يتم استخدام المجموعة التلقائية. يجب أن يكون الحِزمة مملوكة لمشروع مفعّل فيه الفوترة، ويؤدي تحديد حِزمة إلى فرض رسوم فوترة على مساحة التخزين المستخدَمة.

    على سبيل المثال:

    firebase appdistribution:distribute test.apk  \
        --app 1:1234567890:android:0a1b2c3d4e5f67890  \
        --release-notes "Bug fixes and improvements" --testers-file testers.txt

    تعرض أداة Firebase CLI الروابط التالية بعد تحميل الإصدار. تساعدك هذه الروابط في إدارة الملفات الثنائية وضمان حصول المختبِرين والمطوّرين الآخرين على الإصدار الصحيح:

    • firebase_console_uri: رابط يؤدي إلى وحدة تحكّم Firebase تعرض إصدارًا واحدًا. يمكنك مشاركة هذا الرابط مع مطوّرين آخرين في مؤسستك.
    • testing_uri - رابط يؤدي إلى الإصدار في تجربة المختبِر (تطبيق Android مضمّن) يسمح للمختبِرين بعرض ملاحظات الإصدار وتثبيت التطبيق على أجهزتهم. ويجب أن يكون لدى المختبِر إذن بالوصول إلى الإصدار كي يتمكّن من استخدام الرابط.
    • binary_download_uri - رابط موقَّع يؤدي مباشرةً إلى تنزيل وتثبيت الرمز الثنائي للتطبيق (حزمة APK أو ملف AAB) . تنتهي صلاحية الرابط بعد ساعة واحدة.

    إدارة المختبِرين والمجموعات

    بالإضافة إلى توزيع الإصدارات، يمكنك أيضًا استخدام appdistribution:testers:add و appdistribution:testers:remove لدعوة مختبِرين جدد أو إزالة مختبِرين حاليين من مشروعك على Firebase.

    بعد إضافة مختبِر إلى مشروعك على Firebase، يمكنك إضافته إلى إصدارات فردية. بعد إزالة أحد المختبِرين، لن يعود بإمكانه الوصول إلى الإصدارات في مشروعك. يُرجى العِلم أنّه سيظل بإمكان المختبِرين الذين تمت إزالتهم مؤخرًا الوصول إلى إصداراتك لفترة زمنية محدودة.

    على سبيل المثال:

    firebase appdistribution:testers:add anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove anothertester@email.com moretesters@email.com

    يجب الفصل بين عناوين البريد الإلكتروني للمختبِرين بمسافة. يمكنك أيضًا تحديد المختبِرين باستخدام --file /path/to/testers.txt.

    إذا كان لديك عدد كبير من المختبِرين، ننصحك باستخدام المجموعات: يمكنك استخدام appdistribution:group:create وappdistribution:group:delete لإنشاء مجموعات أو حذفها في مشروعك على Firebase.

    استخدِم --group-alias لتحديد مجموعة للأمرين appdistribution:testers:add وappdistribution:testers:remove.

    على سبيل المثال:

    firebase appdistribution:group:create "QA team" qa-team
    
    firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:group:delete qa-team

بعد توزيع الإصدار، يصبح متاحًا في لوحة بيانات App Distribution بوحدة تحكّم Firebase لمدة 150 يومًا (خمسة أشهر). عندما يتبقى 30 يومًا على انتهاء صلاحية الإصدار، سيظهر إشعار بانتهاء الصلاحية في كل من وحدة التحكّم وقائمة الإصدارات لدى المختبِر على جهازه الاختباري.

يتلقّى المختبِرون الذين لم تتم دعوتهم لاختبار التطبيق دعوات عبر البريد الإلكتروني لبدء الاختبار، ويتلقّى المختبِرون الحاليون إشعارات عبر البريد الإلكتروني بأنّ هناك إصدارًا جديدًا جاهزًا للاختبار (يمكنك الاطّلاع على دليل إعداد المختبِرين للحصول على تعليمات حول كيفية تثبيت الإصدار التجريبي من التطبيق). يمكنك تتبُّع حالة كل مختبِر، أي ما إذا كان قد قبل الدعوة وما إذا كان قد نزّل التطبيق، وذلك في وحدة تحكّم Firebase.

لدى المختبِرين 30 يومًا لقبول دعوة لاختبار التطبيق قبل أن تنتهي صلاحيتها. عندما يتبقى 5 أيام على انتهاء صلاحية دعوة، يظهر إشعار بانتهاء الصلاحية في وحدة تحكّم Firebase بجانب المختبِر في إصدار. يمكن تجديد الدعوة من خلال إعادة إرسالها باستخدام القائمة المنسدلة في صف المختبِر.

الخطوات التالية