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

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

قبل ان تبدأ

إذا لم تكن قد قمت بذلك بالفعل، فأضف Firebase إلى مشروع Android الخاص بك .

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

الخطوة 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(...)
        # 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!"
        )
    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 لطباعة إخراج التصحيح المطول.

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