توزيع تطبيقات Android على المختبِرين باستخدام Fastlane

يصف هذا الدليل طريقة توزيع إصدارات AAB على المختبِرين باستخدام Fastlane، نظام أساسي مفتوح المصدر يعمل على برمجة إنشاء إصدارات iOS وAndroid التطبيقات. وهو يتّبع تعليمات بسيطة تم تحديدها في Fastfile. بعد الإعداد Fastlane وFastfile، يمكنك دمج App Distribution مع Fastlane التكوين.

تتكامل ميزة "توزيع التطبيقات" مع خدمة مشاركة التطبيقات الداخلية من Google Play لتنفيذ ما يلي: معالجة ملفات AAB التي تحمِّلها وعرض حِزم APK المحسَّنة للمختبِرين إعدادات الأجهزة. يتيح لك توزيع AAB إجراء ما يلي:

  • يمكنك تشغيل حِزم APK محسّنة (معروضة من خلال Google Play) تم تحسينها لتناسب احتياجاتك. للمختبِرين الأجهزة.

  • كشف المشاكل الخاصة بالجهاز وتصحيح الأخطاء فيها

  • اختبار ميزات حِزم التطبيقات مثل عرض الميزات في Play وعرض المواد في Play

  • يُرجى تقليل حجم المحتوى الذي يتم تنزيله للمختبِرين.

الأذونات المطلوبة

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

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

ينطبق الجدول التالي على ربط تطبيق Firebase بتطبيق في Google Play، فضلاً عن تحميل ملفات AAB.

الإجراء في وحدة تحكُّم Firebase الإذن المطلوب لإدارة الهوية وإمكانية الوصول أدوار "إدارة الهوية وإمكانية الوصول" التي تتضمّن الأذونات المطلوبة من قِبل تلقائي الأدوار الإضافية المطلوبة
ربط تطبيق على Firebase بتطبيق في Google Play firebase.playLinks.update أحد الأدوار التالية: الوصول إلى حساب مطوِّر على Google Play باستخدام المشرف
تحميل ملفات AAB إلى ميزة App Distribution firebaseappdistro.releases.update أحد الأدوار التالية: ––

قبل البدء

  1. أضِف Firebase إلى جهاز Android إذا لم يسبق لك إجراء ذلك. مشروعك. في نهاية سير العمل هذا، ستكون امتلاك تطبيق Android على Firebase في مشروعك على Firebase.

    إذا لم تكن تستخدم أي منتجات أخرى من منتجات Firebase، ما عليك سوى إنشاء للمشروع وتسجيل تطبيقك. إذا قررت استخدام ميزات منتجاتك، فتأكد من إكمال جميع الخطوات في أضِف Firebase إلى مشروع Android.

  2. لإنشاء رابط Firebase إلى Google Play وتحميل ملفات AAB، تأكد من يستوفي تطبيقك المتطلبات التالية:

    • تم تسجيل التطبيق في Google Play وتطبيق Firebase المتوافق مع Android باستخدام نفس اسم الحزمة.

    • تم إعداد التطبيق في Google Play من خلال التطبيق لوحة البيانات ويتم توزيعه على أحد مسارات Google Play (الاختبار الداخلي، الاختبار المغلق أو الاختبار المفتوح أو الإنتاج).

    • اكتملت مراجعة التطبيق في Google Play وتم نشره. يتم نشر تطبيقك إذا كان عمود حالة التطبيق يعرض أحد الحالات التالية: اختبار داخلي (وليس اختبارًا داخليًا في وضع المسودة) الاختبار المغلق أو الاختبار المفتوح أو الإنتاج

  3. اربط تطبيق Android على Firebase بحساب المطوِّر على Google Play:

    1. في "وحدة تحكُّم Firebase"، انتقِل إلى إعدادات المشروع، ثم اختَر علامة التبويب عمليات الدمج.

    2. في بطاقة Google Play، انقر على ربط.
      إذا كان لديك روابط تؤدي إلى Google Play، انقر على إدارة. بدلاً من ذلك.

    3. اتّبِع التعليمات الظاهرة على الشاشة لتفعيل ميزة "توزيع التطبيقات" التكامل واختيار تطبيقات Firebase Android المطلوب ربطها بـ Google اللعب.

    مزيد من المعلومات حول ربط الحساب بمتجر Google Play.

الخطوة 1: إعداد الخط السريع

  1. تثبيت وإعداد Fastlane

  2. لإضافة App Distribution إلى إعداد Fastlane، شغِّل ما يلي من جذر مشروع Android:

    fastlane add_plugin firebase_app_distribution

    إذا ظهر لك الأمر خيارًا، انقر على Option 3: RubyGems.org.

الخطوة 2: المصادقة باستخدام Firebase

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

الخطوة 3: يمكنك إعداد Fastfile وتوزيع تطبيقك

  1. في ممر ./fastlane/Fastfile، أضِف حظر firebase_app_distribution استخدِم المَعلمات التالية من أجل: لإعداد التوزيع:
    مَعلمات firebase_app_distribution
    app

    مطلوب: رقم تعريف تطبيق Firebase لتطبيقك. إِنْتَ يمكنك العثور على رقم تعريف التطبيق في وحدة تحكُّم Firebase، صفحة "الإعدادات العامة"

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

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

    service_credentials_file

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

    android_artifact_type

    تحدّد هذه السياسة نوع ملف Android (APK أو AAB).

    android_artifact_path

    سيحل محل apk_path (متوقف نهائيًا). المسار المطلق إلى ملف APK أو AAB الذي تريد تحميله في حال حذف غير محدد، يحدد الخط السريع موقع الملف من الممر الذي تم إنشاء الملف فيه.

    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"
    test_devices
    test_devices_file

    تشكّل أنواع التوزيع التالية جزءًا من الميزة التجريبية للمختبِرين المبرمَجين.

    الأجهزة الاختبارية التي تريد توزيع الإصدارات عليها (راجع الاختبارات المبرمَجة).

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

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,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" للاطّلاع على نتائج الاختبار التلقائي.

    debug

    علامة منطقية يمكنك ضبط هذا الخيار على true. لطباعة نتائج تصحيح الأخطاء المطوَّلة.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

لإتاحة الإصدار للمختبِرين، عليك اتّباع الخطوات التالية:

fastlane <lane>

والقيمة المعروضة للإجراء هي تجزئة تمثّل الإصدار الذي تم تحميله. تتوفّر هذه التجزئة أيضًا باستخدام السمة lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]. لمزيد من المعلومات عن الحقول المتاحة في هذه التجزئة، يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات REST:

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

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

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

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

(اختياري) لزيادة رقم الإصدار تلقائيًا في كل مرة تنشئ فيها إصدارًا جديدًا في App Distribution، يمكنك استخدام إجراء واحد (firebase_app_distribution_get_latest_release) وعلى سبيل المثال، increment_version_code المكون الإضافي Fastlane. يقدم الكود التالي مثالاً على كيفية زيادة قيمة رقم الإصدار:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

للاطّلاع على مزيد من المعلومات عن إجراء firebase_app_distribution_get_latest_release، راجِع الحصول على معلومات حول أحدث إصدار من تطبيقك.

الخطوة 4 (اختيارية) إدارة المختبرين للتوزيع

يمكنك إضافة المختبِرين وإزالتهم من مشروعك أو مجموعتك باستخدام Fastfile. أو عن طريق تشغيل إجراءات الخط السريع مباشرةً. تنفيذ الإجراءات مباشرةً ستلغي القيم المحدّدة في Fastfile.

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

إذا كان لديك عدد كبير من المختبِرين، ننصحك باستخدام المجموعات.

استخدام Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

تنفيذ إجراءات Fastlane

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

يمكنك أيضًا تحديد المختبِرين باستخدام --file="/path/to/testers.txt بدلاً من --emails

يعمل firebase_app_distribution_add_testers تقبل firebase_app_distribution_remove_testers مهمة أيضًا ما يلي: الوسيطات:

  • project_name: رقم مشروع Firebase
  • group_alias (اختياري): في حال تحديد هذا الخيار، ستتم إضافة المختبِرين إلى (أو إزالتهم منه) مجموعة محددة.
  • service_credentials_file: المسار إلى ملف بيانات اعتماد خدمة Google
  • firebase_cli_token: الرمز المميّز لمصادقة واجهة سطر الأوامر في Firebase

service_credentials_file هي نفسها firebase_cli_token. الوسيطات التي يستخدمها إجراء التحميل.

الخطوة 5 (اختيارية) الحصول على معلومات عن أحدث إصدار من تطبيقك

يمكنك استخدام الإجراء firebase_app_distribution_get_latest_release للحصول على معلومات عن أحدث إصدار لتطبيقك في App Distribution بما في ذلك معلومات إصدار التطبيق وملاحظات الإصدار ووقت الإنشاء. حالات الاستخدام تضمين زيادة تلقائية للإصدار وانتقاله إلى مرحلة أخرى ملاحظات من الإصدار السابق.

والقيمة المعروضة للإجراء هي تجزئة تمثّل أحدث إصدار. تتوفّر هذه التجزئة أيضًا باستخدام السمة lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]. لمزيد من المعلومات عن الحقول المتاحة في هذه التجزئة، يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات REST:

المَعلمات

معلمات firebase_app_distribution_get_updated_release
app

مطلوب: رقم تعريف تطبيق Firebase لتطبيقك. إِنْتَ يمكنك العثور على رقم تعريف التطبيق في وحدة تحكُّم Firebase، صفحة "الإعدادات العامة"

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

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

service_credentials_file

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

debug

علامة منطقية يمكنك ضبط هذا الخيار على true. لطباعة نتائج تصحيح الأخطاء المطوَّلة.

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