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

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

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

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

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

  • اختبار ميزات حزمة التطبيقات مثل Play Features 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، انتقل إلى ملف إعدادات المشروع ، ثم حدد علامة التبويب عمليات التكامل .

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

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

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

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

  1. تثبيت وإعداد الخط السريع .

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

    fastlane add_plugin firebase_app_distribution

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

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

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

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

  1. في المسار ./fastlane/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"
    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 API .

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

  • رابط إلى وحدة تحكم Firebase يعرض إصدارًا واحدًا. يمكنك مشاركة هذا الرابط مع المطورين الآخرين في مؤسستك.
  • رابط للإصدار في تجربة المختبر (تطبيق 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 الخاص بك أو عن طريق تشغيل إجراءات Fastlane مباشرةً. يؤدي تشغيل الإجراءات مباشرة إلى تجاوز القيم المحددة في 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 لجلب معلومات حول أحدث إصدار لتطبيقك في توزيع التطبيقات، بما في ذلك معلومات إصدار التطبيق وملاحظات الإصدار ووقت الإنشاء. تتضمن حالات الاستخدام زيادة الإصدار تلقائيًا وترحيل ملاحظات الإصدار من الإصدار السابق.

القيمة المرجعة للإجراء هي تجزئة تمثل الإصدار الأخير. هذا التجزئة متاح أيضًا باستخدام 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 لطباعة إخراج التصحيح المطول.

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