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

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

يتكامل توزيع التطبيقات مع خدمة مشاركة التطبيقات الداخلية في Google Play لمعالجة AABs التي تقوم بتحميلها وتقديم ملفات APK المحسّنة لتكوينات جهاز المختبرين. يتيح لك توزيع AABs القيام بما يلي:

  • قم بتشغيل ملفات APK المحسنة (التي يقدمها Google Play) والتي تم تحسينها لأجهزة المختبرين.

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

  • اختبار ميزات حزمة التطبيقات مثل Play Feature Delivery و Play Asset Delivery .

  • تقليل حجم التنزيلات للمختبرين.

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

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

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

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

إجراء في وحدة تحكم Firebase مطلوب إذن IAM دور (أدوار) IAM التي تتضمن الأذونات المطلوبة بشكل افتراضي الدور (الأدوار) الإضافية المطلوبة
اربط تطبيق Firebase بتطبيق في Google Play firebase.playLinks.update أحد الأدوار التالية: الوصول إلى حساب مطور Google Play كمسؤول
تحميل AABs إلى توزيع التطبيق firebaseappdistro.releases.update أحد الأدوار التالية: - –

قبل ان تبدأ

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

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

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

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

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

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

  3. اربط تطبيق Firebase Android بحساب مطوّر برامج Google Play:

    1. في وحدة تحكم Firebase ، انتقل إلى Project settings ، ثم حدد علامة التبويب Integrations .

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

    3. اتبع التعليمات التي تظهر على الشاشة لتمكين تكامل توزيع التطبيقات وحدد تطبيقات Firebase Android لربطها بـ Google Play.

    تعرف على المزيد حول الارتباط بـ Google Play .

الخطوة 1. قم بإعداد Fastlane

  1. تثبيت وتثبيت Fastlane .

  2. لإضافة توزيع التطبيق إلى تكوين المسار السريع الخاص بك ، قم بتشغيل الأمر التالي من جذر مشروع Android الخاص بك:

    fastlane add_plugin firebase_app_distribution

    إذا طالبك الأمر بخيار ، فحدد Option 3: RubyGems.org .

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

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

الخطوة الثالثة. قم بإعداد Fastfile الخاص بك وتوزيع التطبيق الخاص بك

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

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

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

    رمز تحديث يُطبع عند مصادقة بيئة CI الخاصة بك باستخدام Firebase CLI (اقرأ استخدام CLI مع أنظمة 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"
    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 API .

يقوم البرنامج المساعد fastlane بإخراج الروابط التالية بعد تحميل الإصدار. تساعدك هذه الروابط في إدارة الثنائيات والتأكد من أن المختبرين والمطورين الآخرين لديهم الإصدار الصحيح:

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

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

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

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

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 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 CLI.

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

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

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

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

حدود

firebase_app_distribution_get_latest_release المعلمات
app

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

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

رمز تحديث يُطبع عند مصادقة بيئة CI الخاصة بك باستخدام Firebase CLI (اقرأ استخدام CLI مع أنظمة CI لمزيد من المعلومات).

service_credentials_file

المسار إلى ملف json الخاص بحساب خدمة Google. انظر أعلاه للتعرف على كيفية المصادقة باستخدام بيانات اعتماد حساب الخدمة .

debug

علم منطقي. يمكنك تعيين هذا على true لطباعة إخراج التصحيح المطول.

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