يوضّح هذا الدليل كيفية توزيع إصدارات AAB على المختبِرين باستخدام
fastlane، وهو منصّة مفتوحة المصدر تعمل على إنشاء تطبيقات iOS وAndroid
وإصدارها تلقائيًا. وتتّبع تعليمات بسيطة محدّدة في Fastfile
. بعد إعداد
fastlane وFastfile
، يمكنك دمج App Distribution مع إعدادات
fastlane.
يتم دمج App Distribution مع خدمة "مشاركة التطبيقات مع الفريق الداخلي" في Google Play لمعالجة حِزم AAB التي تحمِّلها وعرض حِزم APK المحسّنة لإعدادات أجهزة المختبِرين. يتيح لك توزيع حِزم APK القابلة للحمل تنفيذ ما يلي:
يمكنك تشغيل حِزم APK محسّنة (يعرضها Google Play) ومُحسَّنة لتعمل على أجهزة المختبِرين.
رصد المشاكل المتعلّقة بالأجهزة وتصحيحها
اختبِر ميزات حِزم التطبيقات، مثل عرض الميزات في Play وعرض المواد في Play.
يمكنك تقليل حجم الملفات التي يتم تنزيلها من قِبل المختبِرين.
الأذونات المطلوبة
لتحميل حِزم APK القابلة للحمل إلى App Distribution، عليك ربط تطبيقك على 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
|
أحد الأدوار التالية: | –– |
قبل البدء
أضِف Firebase إلى مشروع Android، في حال لم يسبق لك إجراء ذلك. في نهاية سير العمل هذا، سيكون لديك تطبيق Android على Firebase في مشروعك على Firebase.
إذا لم تكن تستخدِم أي منتجات أخرى من Firebase، ما عليك سوى إنشاء مشروع وتسجيل تطبيقك. وإذا قرّرت استخدام منتجات إضافية، احرص على إكمال جميع الخطوات الواردة في مقالة إضافة Firebase إلى مشروع Android.
لإنشاء رابط Firebase بمنصّة Google Play وتحميل حِزم APK القابلة للحمل، تأكَّد من أنّ تطبيقك يستوفي المتطلبات التالية:
تم تسجيل التطبيق على Google Play وتطبيق Firebase لنظام التشغيل Android باستخدام اسم الحزمة نفسه.
تم إعداد التطبيق في Google Play على لوحة بيانات التطبيق وتوزيعه على أحد مسارات Google Play (الاختبار الداخلي أو الاختبار المغلق أو الاختبار المفتوح أو الإصدار العلني).
اكتمال مراجعة التطبيق في Google Play ونشره يتم نشر تطبيقك إذا كان عمود حالة التطبيق يعرض إحدى الحالات التالية: اختبار داخلي (وليس اختبارًا داخليًا لمسوّدة) أو اختبار مغلق أو اختبار مفتوح أو إصدار.
ربط تطبيق Android على Firebase بحساب المطوِّر الخاص بك على Google Play:
في وحدة تحكّم Firebase، انتقِل إلى
، ثم اختَر علامة التبويب عمليات الدمج. إعدادات المشروع في بطاقة Google Play، انقر على ربط.
إذا كانت لديك روابط تؤدي إلى Google Play، انقر على إدارة بدلاً من ذلك.اتّبِع التعليمات الظاهرة على الشاشة لتفعيل App Distribution عملية الدمج واختيار تطبيقات Android على Firebase المطلوب ربطها بحسابك على Google Play.
الخطوة 1: إعداد fastlane
لإضافة App Distribution إلى إعدادات Fastlane، نفِّذ الأمر التالي من جذر مشروع Android:
fastlane add_plugin firebase_app_distribution
إذا طلب منك الأمر اختيار أحد الخيارات، اختَر
Option 3: RubyGems.org
.
الخطوة 2: المصادقة باستخدام Firebase
لاستخدام المكوّن الإضافي fastlane، عليك أولاً المصادقة باستخدام مشروعك على Firebase بإحدى الطرق التالية. يبحث مكوّن Fastlane الإضافي تلقائيًا عن بيانات الاعتماد من وحدة تحكّم Firebase CLI في حال عدم استخدام طريقة مصادقة أخرى.
استخدام بيانات اعتماد حساب خدمة Firebase
تتيح لك المصادقة باستخدام حساب خدمة استخدام المكوّن الإضافي بمرونة مع نظام الدمج المستمر (CI). هناك طريقتان لتقديم بيانات اعتماد حساب الخدمة:
- نقْل ملف مفتاح حساب الخدمة إلى
firebase_app_distribution
الإجراء. قد تكون هذه الطريقة ملائمة إذا كان لديك ملف مفتاح حساب الخدمة في بيئة الإنشاء. - اضبط متغيّر البيئة
GOOGLE_APPLICATION_CREDENTIALS
للإشارة إلىملف مفتاح حساب الخدمة. قد تفضّل هذه الطريقة إذا سبق أن تم إعداد بيانات اعتماد تلقائية للتطبيق (ADC) لخدمة أخرى من Google (مثل Google Cloud).
- في وحدة تحكّم Google Cloud، اختَر مشروعك وأنشئ حساب خدمة جديدًا.
- أضِف دور Firebase App Distribution المشرف.
- أنشئ مفتاحًا خاصًا بترميز JSON وانقل المفتاح إلى موقع يمكن لبيئة الإنشاء الوصول إليه. احرص على الاحتفاظ بهذا الملف في مكان آمن، لأنّه يمنح إذن وصول المشرف إلى App Distribution في مشروعك على Firebase.
- تخطّ هذه الخطوة إذا أنشأت تطبيقك بعد 20 أيلول (سبتمبر) 2019: في وحدة تحكّم Google APIs، فعِّل واجهة برمجة التطبيقات Firebase App Distribution API. اختَر المشروع الذي يحمل الاسم نفسه لمشروعك على Firebase عند ظهور طلب بذلك.
قدِّم بيانات اعتماد حساب الخدمة أو حدِّد مكانها:
- لتمرير مفتاح حساب الخدمة إلى
firebase_app_distribution
العملية في مسارك، اضبط المَعلمةservice_credentials_file
باستخدام المسار إلى ملف JSON للمفتاح الخاص. لتحديد موقع بيانات الاعتماد باستخدام أداة ADC، اضبط متغيّر البيئة
GOOGLE_APPLICATION_CREDENTIALS
على مسار ملف JSON للمفتاح الخاص. على سبيل المثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
لمزيد من المعلومات عن المصادقة باستخدام ADC، يُرجى الاطّلاع على مقالة تقديم بيانات الاعتماد إلى تطبيقك.
- لتمرير مفتاح حساب الخدمة إلى
تسجيل الدخول باستخدام واجهة برمجة التطبيقات Firebase
اطّلِع على مقالة تسجيل الدخول باستخدام واجهة برمجة التطبيقات Firebase للحصول على تعليمات حول كيفية مصادقة مشروعك.
الخطوة 3: إعداد Fastfile وتوزيع تطبيقك
- في حارة
./fastlane/Fastfile
، أضِف مجموعةfirebase_app_distribution
. استخدِم المَعلمات التالية لمحاولة ضبط التوزيع:مَعلمات firebase_app_distribution app
مطلوبة: معرّف تطبيقك على Firebase يمكنك العثور على معرّف التطبيق في وحدة تحكّم Firebase، ضمن صفحة "الإعدادات العامة".
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
رمز إعادة التنشيط الذي يتم طباعته عند مصادقة بيئة التطوير المتكامل باستخدام واجهة سطر الأوامر Firebase (اطّلِع على استخدام واجهة سطر الأوامر مع أنظمة التطوير المتكامل للحصول على مزيد من المعلومات).
service_credentials_file
المسار إلى ملف JSON لحساب الخدمة على Google. اطّلِع على القسم أعلاه لمعرفة كيفية المصادقة باستخدام بيانات اعتماد حساب الخدمة.
android_artifact_type
تُستخدَم لتحديد نوع ملف Android (APK أو AAB).
android_artifact_path
تم استبداله بـ
apk_path
(تم إيقافه نهائيًا). المسار المطلق لملف APK أو AAB الذي تريد تحميله إذا لم يتم تحديده، تحدِّد أداة fastlane موقع الملف من المسار الذي تم إنشاء الملف فيه.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) و تثبيته مباشرةً تنتهي صلاحية الرابط بعد ساعة واحدة.
بعد توزيع الإصدار، يصبح متوفّرًا في لوحة بيانات App Distribution في وحدة تحكّم Firebase لمدة 150 يومًا. عندما يتبقّى 30 يومًا على انتهاء صلاحية الإصدار، يظهر إشعار بانتهاء الصلاحية فيconsole وفي قائمة الإصدارات لدى المختبِر على جهاز الاختبار.
يتلقّى المختبِرون الذين لم تتم دعوتهم سابقًا لاختبار التطبيق دعوات عبر البريد الإلكتروني لبدء الاختبار. يتلقّى المختبِرون الحاليون إشعارات عبر البريد الإلكتروني عند توفّر إصدار جديد للاختبار. للتعرّف على كيفية تثبيت التطبيق التجريبي، اطّلِع على دليل إعداد المختبِر. يمكنك تتبُّع حالة كل مختبِر لمعرفة ما إذا كان قد وافق على الدعوة وما إذا كان قد نزَّل التطبيق في وحدة تحكُّمFirebase.
(اختياري) لزيادة رقم الإصدار تلقائيًا في كل مرة تنشئ فيها
إصدارًا جديدًا في "توزيع التطبيقات"، يمكنك استخدام
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
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
لاسترداد معلومات عن أحدث إصدار من تطبيقك في "توزيع التطبيقات"،
بما في ذلك معلومات إصدار التطبيق وملاحظات الإصدار ووقت الإنشاء. تشمل حالات الاستخدام
زيادة الإصدار تلقائيًا ونقل ملاحظات الإصدار
من الإصدار السابق.
القيمة المعروضة للإجراء هي تجزئة تمثّل أحدث إصدار.
تتوفّر هذه التجزئة أيضًا باستخدام 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
|
رمز إعادة التنشيط الذي يتم طباعته عند مصادقة بيئة التطوير المتكامل باستخدام واجهة سطر الأوامر Firebase (اطّلِع على استخدام واجهة سطر الأوامر مع أنظمة التطوير المتكامل للحصول على مزيد من المعلومات). |
service_credentials_file
|
المسار إلى ملف JSON لحساب الخدمة على Google. اطّلِع على القسم أعلاه لمعرفة كيفية المصادقة باستخدام بيانات اعتماد حساب الخدمة. |
debug
|
علامة منطقية يمكنك ضبط هذا الخيار على |
الخطوات التالية
يمكنك توفير ميزة ملاحظات داخل التطبيق لتسهيل إرسال الملاحظات حول تطبيقك من قِبل المختبِرين (بما في ذلك لقطات الشاشة).
تعرَّف على كيفية عرض تنبيهات داخل التطبيق للمختبِرين عندما تتوفّر إصدارات جديدة من تطبيقك لتثبيتها.
تعرَّف على أفضل الممارسات لتوزيع تطبيقات Android على مختبِري ضمان الجودة باستخدام ميزة "التكامل والنشر".