يمكنك توزيع الإصدارات على المختبرين باستخدام Fastlane ، وهو نظام أساسي مفتوح المصدر يعمل على إنشاء تطبيقات iOS وAndroid وإصدارها تلقائيًا. إنه يتبع تعليمات بسيطة محددة في Fastfile
. بعد إعداد Fastlane و Fastfile
، يمكنك دمج توزيع التطبيقات مع تكوين Fastlane الخاص بك.
الخطوة 1. إعداد الخط السريع
لإضافة توزيع التطبيقات إلى تكوين Fastlane الخاص بك، قم بتشغيل الأمر التالي من جذر مشروع iOS الخاص بك:
fastlane add_plugin firebase_app_distribution
إذا طالبك الأمر بخيار، فحدد
Option 3: RubyGems.org
.
الخطوة 2. المصادقة باستخدام Firebase
قبل أن تتمكن من استخدام المكون الإضافي fastlane، يجب عليك أولاً المصادقة مع مشروع Firebase الخاص بك بإحدى الطرق التالية. افتراضيًا، يبحث المكون الإضافي fastlane عن بيانات الاعتماد من Firebase CLI في حالة عدم استخدام طريقة مصادقة أخرى.
تتيح لك المصادقة باستخدام حساب الخدمة استخدام البرنامج الإضافي بمرونة مع نظام التكامل المستمر (CI) الخاص بك. هناك طريقتان لتوفير بيانات اعتماد حساب الخدمة:
- قم بتمرير ملف مفتاح حساب الخدمة الخاص بك إلى إجراء
firebase_app_distribution
. قد تجد هذه الطريقة مناسبة إذا كان لديك بالفعل ملف مفتاح حساب الخدمة الخاص بك في بيئة البناء الخاصة بك. - قم بتعيين متغير البيئة
GOOGLE_APPLICATION_CREDENTIALS
للإشارة إلى ملف مفتاح حساب الخدمة الخاص بك. قد تفضل هذه الطريقة إذا كان لديك بالفعل بيانات اعتماد التطبيق الافتراضية (ADC) التي تم تكوينها لخدمة Google أخرى (على سبيل المثال، Google Cloud).
- في Google Cloud Console، حدد مشروعك وأنشئ حساب خدمة جديدًا.
- أضف دور مسؤول توزيع تطبيق Firebase .
- قم بإنشاء مفتاح 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 CLI للحصول على إرشادات حول كيفية مصادقة مشروعك.
الخطوة 3. قم بإعداد Fastfile الخاص بك وقم بتوزيع تطبيقك
- في المسار
./fastlane/Fastfile
، أضف كتلةfirebase_app_distribution
. استخدم المعلمات التالية لتكوين التوزيع:معلمات firebase_app_distribution app
مطلوب فقط إذا كان تطبيقك لا يحتوي على ملف تهيئة Firebase (
GoogleService-Info.plist
) : معرف تطبيق Firebase لتطبيقك. يمكنك العثور على معرف التطبيق في وحدة تحكم Firebase، في صفحة الإعدادات العامة .app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
المسار إلى ملف
GoogleService-Info.plist
، المتعلق بمسار المنتج المؤرشف. اضبط علىGoogleService-Info.plist
افتراضيًا.يتم استخدام الملف للحصول على معرف تطبيق Firebase لتطبيقك إذا كانت معلمة
app
غير محددة.firebase_cli_token
رمز التحديث الذي تتم طباعته عند مصادقة بيئة CI الخاصة بك باستخدام Firebase CLI (اقرأ استخدام CLI مع أنظمة CI لمزيد من المعلومات).
service_credentials_file
المسار إلى ملف json الخاص بحساب خدمة Google. انظر أعلاه لمعرفة كيفية المصادقة باستخدام بيانات اعتماد حساب الخدمة .
ipa_path
يستبدل
apk_path
(مهمل). المسار المطلق لملف IPA الذي تريد تحميله. إذا لم يكن محددًا، يحدد الخط السريع موقع الملف من المسار الذي تم إنشاء الملف فيه.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 :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios: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 يعرض إصدارًا واحدًا. يمكنك مشاركة هذا الرابط مع المطورين الآخرين في مؤسستك.
- رابط للإصدار في تجربة المختبر (مقطع ويب iOS) يتيح للمختبرين عرض ملاحظات الإصدار وتثبيت التطبيق على أجهزتهم. يحتاج المُختبر إلى الوصول إلى الإصدار حتى يتمكن من استخدام الرابط.
- رابط موقع يقوم بتنزيل التطبيق الثنائي وتثبيته مباشرة (ملف IPA). تنتهي صلاحية الرابط بعد ساعة واحدة.
بعد توزيع الإصدار الخاص بك، يصبح متاحًا في لوحة معلومات توزيع التطبيقات بوحدة تحكم Firebase لمدة 150 يومًا. عندما يكون الإصدار بعد 30 يومًا من انتهاء الصلاحية، يظهر إشعار انتهاء الصلاحية في وحدة التحكم وفي قائمة الإصدارات الخاصة بالمختبر على جهاز الاختبار الخاص به.
يتلقى المختبرون الذين لم تتم دعوتهم مسبقًا لاختبار التطبيق دعوات عبر البريد الإلكتروني للبدء. يتلقى المختبرون الحاليون إشعارات عبر البريد الإلكتروني تفيد بأن الإصدار الجديد جاهز للاختبار. لمعرفة كيفية تثبيت التطبيق الاختباري، راجع الإعداد كمختبر . يمكنك مراقبة حالة كل مختبر لتحديد ما إذا كانوا قد قبلوا الدعوة وما إذا كانوا قد قاموا بتنزيل التطبيق في وحدة تحكم Firebase.
(اختياري) لزيادة رقم الإصدار الخاص بك تلقائيًا في كل مرة تقوم فيها بإنشاء إصدار جديد في App Distribution، يمكنك استخدام الإجراء firebase_app_distribution_get_latest_release
والإجراء increment_build_number
. توفر التعليمة البرمجية التالية مثالاً لكيفية زيادة رقم الإصدار الخاص بك تلقائيًا:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
لمعرفة المزيد حول ميزة البرنامج الإضافي Fastlane، راجع الحصول على معلومات حول أحدث إصدار لتطبيقك .
الخطوة 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 ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | المسار إلى ملف يتم استخدام الملف للحصول على معرف تطبيق Firebase لتطبيقك إذا كانت معلمة |
firebase_cli_token | رمز التحديث الذي تتم طباعته عند مصادقة بيئة CI الخاصة بك باستخدام Firebase CLI (اقرأ استخدام CLI مع أنظمة CI لمزيد من المعلومات). |
service_credentials_file | المسار إلى ملف json الخاص بحساب خدمة Google. انظر أعلاه لمعرفة كيفية المصادقة باستخدام بيانات اعتماد حساب الخدمة . |
debug | علم منطقي. يمكنك ضبط هذا على |
الخطوات التالية
لتسجيل المزيد من الأجهزة يدويًا أو برمجيًا، راجع تسجيل أجهزة iOS إضافية .
تعرّف على أفضل الممارسات لتوزيع تطبيقات Apple على مختبري ضمان الجودة باستخدام CI/CD وfastlane .