يمكنك دمج "App Distribution" في عملية إصدار Android باستخدام App Distribution المكوّن الإضافي لنظام Gradle يتيح لك المكوّن الإضافي تحديد المختبِرين ملاحظات الإصدار في ملف Gradle لتطبيقك، بما يسمح لك بإعداد التوزيعات للتعرّف على أنواع الإصدارات والصيغ المختلفة لتطبيقك
يوضِّح هذا الدليل كيفية توزيع مجموعات حزمات تطبيق Android (AAB) على المختبِرين. باستخدام المكوّن الإضافي App Distribution Gradle
يتكامل تطبيق App Distribution مع خدمة مشاركة التطبيقات الداخلية من Google Play لتنفيذ ما يلي: معالجة ملفات AAB التي تحمِّلها وعرض حِزم APK المحسَّنة للمختبِرين إعدادات الأجهزة. يتيح لك توزيع AAB إجراء ما يلي:
يمكنك تشغيل حِزم APK محسّنة (معروضة من خلال Google Play) تم تحسينها لتناسب احتياجاتك. للمختبِرين الأجهزة.
كشف المشاكل الخاصة بالجهاز وتصحيح الأخطاء فيها
اختبار ميزات حِزم التطبيقات مثل عرض الميزات في Play وعرض المواد في Play
يُرجى تقليل حجم المحتوى الذي يتم تنزيله للمختبِرين.
الأذونات المطلوبة
لتحميل ملفات AAB إلى 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 وتحميل ملفات AAB، تأكد من يستوفي تطبيقك المتطلبات التالية:
تم تسجيل التطبيق في Google Play وتطبيق Firebase المتوافق مع Android باستخدام نفس اسم الحزمة.
تم إعداد التطبيق في Google Play من خلال التطبيق لوحة البيانات ويتم توزيعه على أحد مسارات Google Play (الاختبار الداخلي، الاختبار المغلق أو الاختبار المفتوح أو الإنتاج).
اكتملت مراجعة التطبيق في Google Play وتم نشره. يتم نشر تطبيقك إذا كان عمود حالة التطبيق يعرض أحد الحالات التالية: اختبار داخلي (وليس اختبارًا داخليًا في وضع المسودة) الاختبار المغلق أو الاختبار المفتوح أو الإنتاج
اربط تطبيق Android على Firebase بحساب المطوِّر على Google Play:
في وحدة تحكّم Firebase، انتقِل إلى
، ثم انقر على علامة التبويب عمليات الدمج. إعدادات المشروع في بطاقة Google Play، انقر على ربط.
إذا كان لديك روابط تؤدي إلى Google Play، انقر على إدارة. بدلاً من ذلك.اتّبِع التعليمات الظاهرة على الشاشة لتفعيل App Distribution. التكامل واختيار تطبيقات Firebase Android المطلوب ربطها بـ Google اللعب.
مزيد من المعلومات حول ربط الحساب بمتجر Google Play.
الخطوة 1: إعداد مشروع Android
في ملف Gradle على مستوى الجذر (على مستوى المشروع) (
<project>/build.gradle.kts
أو<project>/build.gradle
)، أضِف السمة App Distribution المكوّن الإضافي Gradle كتبعية:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.4.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.4.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' apply false }
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، إضافة المكوّن الإضافي App Distribution Gradle:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
إذا كان لديك خادم وكيل لشركة أو جدار حماية، أضف ما يلي: موقع نظام Java التي تتيح لـ App Distribution تحميل توزيعاتك إلى Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
الخطوة 2: المصادقة باستخدام Firebase
قبل أن تتمكن من استخدام مكون Gradle الإضافي، يجب عليك أولاً المصادقة مع مشروع Firebase بإحدى الطرق التالية. بشكلٍ تلقائي، المكوّن الإضافي Gradle تبحث عن بيانات الاعتماد من واجهة سطر الأوامر Firebase في حال عدم الحاجة إلى مصادقة أخرى طريقة المشروع الشائعة.
الخطوة 3: ضبط خصائص التوزيع
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو
<project>/<app-module>/build.gradle
)، اضبط App Distribution من خلال الإضافة في
قسم firebaseAppDistribution
واحد على الأقل.
على سبيل المثال، لتوزيع إصدار release
على المختبِرين، يُرجى اتّباع ما يلي:
التعليمات::
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
يمكنك إعداد App Distribution من أجل إنشاء أنواع ونكهات المنتجات:
على سبيل المثال، لتوزيع إصدارات debug
وrelease
في "إصدار تجريبي". و"كامل"
نكهات المنتج، اتبع هذه التعليمات:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
استخدِم المَعلمات التالية لضبط التوزيع:
مَعلمات الإصدار App Distribution | |
---|---|
appId
|
رقم تعريف تطبيقك في Firebase. مطلوبة فقط إذا لم يكن لديك
تم تثبيت المكوّن الإضافي لنظام Gradle لخدمات Google. يمكنك العثور على رقم تعريف التطبيق في
ملف appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
المسار إلى ملف JSON للمفتاح الخاص لحساب الخدمة. مطلوب فقط في حال استخدام مصادقة حساب الخدمة |
artifactType
|
تُحدِّد نوع ملف تطبيقك. يمكن ضبطها على
|
artifactPath
|
المسار المطلق لملف APK أو AAB الذي تريد تحميله. |
releaseNotes أو releaseNotesFile |
ملاحظات الإصدار لهذا الإصدار يمكنك إما تحديد ملاحظات الإصدار مباشرةً أو المسار إلى ملف نص عادي. |
testers أو testersFile |
عناوين البريد الإلكتروني للمختبِرين الذين تريد توزيع الإصدارات الخاصة بهم إليه. يمكنك تحديد المختبِرين على شكل قائمة بعناوين البريد الإلكتروني مفصولة بفواصل. : testers="ali@example.com, bri@example.com, cal@example.com" أو يمكنك تحديد المسار إلى ملف يحتوي على فاصلة قائمة بعناوين البريد الإلكتروني: testersFile="/path/to/testers.txt" |
groups أو groupsFile |
مجموعات المختبِرين التي تريد توزيع الإصدارات عليها (يُرجى الاطّلاع على
إدارة المختبِرين).
يتم تحديد المجموعات باستخدام يمكنك تحديد المجموعات كقائمة مفصولة بفواصل من المجموعات. الأسماء المستعارة: groups="qa-team, android-testers" أو يمكنك تحديد المسار إلى ملف يحتوي على فاصلة قائمة الأسماء المستعارة للمجموعات: groupsFile="/path/to/tester-groups.txt" |
testDevices أو testDevicesFile |
تشكّل أنواع التوزيع التالية جزءًا من الميزة التجريبية للمختبِرين المبرمَجين. الأجهزة الاختبارية التي تريد توزيع الإصدارات عليها (اطّلِع على الاختبارات الآلية). يمكنك تحديد أجهزة الاختبار كقائمة مفصولة بفواصل منقوطة مواصفات الجهاز: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" أو يمكنك تحديد مسار ملف يحتوي على فاصلة منقوطة. قائمة بمواصفات الأجهزة: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
اسم المستخدم لتسجيل الدخول التلقائي لاستخدامه أثناء الاختبارات الآلية. |
testPassword أو testPasswordFile |
كلمة مرور تسجيل الدخول التلقائي سيتم استخدامها أثناء الاختبارات الآلية. أو يمكنك تحديد المسار إلى ملف نص عادي يحتوي على كلمة مرور: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
اسم المورد لحقل اسم المستخدم لتسجيل الدخول تلقائيًا لاستخدامه أثناء الاختبارات الآلية. |
testPasswordResource |
اسم المورد لحقل كلمة المرور لتسجيل الدخول تلقائيًا، والذي سيتم استخدامه أثناء الاختبارات الآلية. |
testNonBlocking |
إجراء اختبارات مبرمجة بشكل غير متزامن انتقِل إلى "وحدة تحكُّم Firebase" للاطّلاع على نتائج الاختبار التلقائي. |
stacktrace
|
طباعة جدول تسلسل استدعاء الدوال البرمجية لاستثناءات المستخدم. يكون هذا مفيدًا عندما مشكلات تصحيح الأخطاء. |
الخطوة 4. توزيع تطبيقك على المختبِرين
أخيرًا، من أجل إعداد حزمة للتطبيق التجريبي ودعوة المختبِرين، أنشِئ الأهداف
BUILD-VARIANT
وappDistributionUploadBUILD-VARIANT
مع ك حافِل Gradle للمشروع، حيث تكون BUILD-VARIANT هي المتغير الاختياري لنكهة المنتج ونوع التصميم الذي قمت بضبطه في الخطوة السابقة. لمزيد من المعلومات حول نكهات المنتجات، راجع ضبط صيغ الإصدارعلى سبيل المثال، لتوزيع تطبيقك باستخدام صيغة الإصدار
release
، شغِّل الأمر التالي:./gradlew bundleRelease appDistributionUploadRelease
أو إذا كنت قد أجريت المصادقة باستخدام حسابك على Google ولم تقدِّم بيانات اعتماد في ملف إصدار Gradle، فأدرج المتغيّر
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
يمكنك أيضًا إلغاء القيم المحدّدة في ملف
build.gradle
من خلال تمرير. وسيطات سطر الأوامر في شكل--<property-name>=<property-value>
على سبيل المثال:لتحميل إصدار تصحيح الأخطاء إلى App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
لدعوة مختبِرين إضافيين أو إزالة مختبِرين حاليين من Firebase المشروع:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
بعد إضافة أحد المختبِرين إلى مشروعك على Firebase، يمكنك إضافته إلى إصدارات فردية. لن يتمكّن المختبِرون الذين تمت إزالتهم من الوصول إلى الإصدارات في مشروعك، ولكن قد تحتفظ بإمكانية الوصول إلى إصداراتك لفترة من الزمن.
يمكنك أيضًا تحديد المختبِرين باستخدام
--file="/path/to/testers.txt"
بدلاً من--emails
مَهمّتا
appDistributionAddTesters
وappDistributionRemoveTesters
أيضًا قبول الوسيطات التالية:projectNumber
: رقم مشروع FirebaseserviceCredentialsFile
: المسار إلى ملف بيانات اعتماد خدمة Google وهذه هي الوسيطة نفسها التي يستخدمها إجراء التحميل.
يعمل المكوّن الإضافي Gradle على إخراج الروابط التالية بعد تحميل الإصدار. هذه في إدارة البرامج الثنائية والتأكد من أن المختبِرين والمطورين الآخرين على الإصدار المناسب:
firebase_console_uri
- رابط إلى وحدة تحكّم Firebase يعرض إصدار واحد. يمكنك مشاركة هذا الرابط مع مطوِّرين آخرين في org.testing_uri
- رابط للإصدار في تجربة المختبِر (تطبيق Android الأصلي) الذي يتيح للمختبِرين عرض الإصدار الملاحظات وتثبيت التطبيق على أجهزتهم. يحتاج المختبِر إلى الوصول إلى الإصدار من أجل استخدام الرابط.binary_download_uri
- رابط موقَّع يتم تنزيله مباشرةً تثبّت البرنامج الثنائي للتطبيق (ملف APK أو AAB). تنتهي صلاحية الرابط بعد ساعة.
بعد توزيع الإصدار، سيصبح متوفّرًا في App Distribution هي لوحة بيانات وحدة تحكّم Firebase لمدة 150 يومًا (خمسة أشهر). عندما تنتهي صلاحية الإصدار بعد 30 يومًا من انتهاء صلاحيته، يظهر إشعار انتهاء الصلاحية في وحدة التحكم وقائمة الإصدارات الخاصة بالمختبِرين على جهاز الاختبار الخاص بهم.
يتلقّى المختبِرون الذين لم تتم دعوتهم لاختبار التطبيق دعوات بالبريد الإلكتروني إلى وسيتلقّى المختبِرون الحاليون إشعارات عبر البريد الإلكتروني تفيد بأنّ إصدارًا جديدًا على استعداد للاختبار (يُرجى قراءة دليل إعداد المختبِر للحصول على تعليمات حول طريقة تثبيت الاختبار التطبيق). يمكنك مراقبة حالة كل مختبِر، وما إذا كان قد قبل وما إذا كانوا نزّلوا التطبيق في وحدة تحكّم Firebase أم لا.
ويكون لدى المختبِرين 30 يومًا لقبول الدعوة لاختبار التطبيق قبل انتهاء صلاحيته. عندما تنتهي صلاحية الدعوة بعد 5 أيام من انتهاء صلاحيتها، يظهر إشعار انتهاء الصلاحية في وحدة تحكُّم Firebase بجانب المختبِر في أحد الإصدارات يمكن أن تكون الدعوة تجديده من خلال إعادة إرساله باستخدام القائمة المنسدلة في صف المختبر.
الخطوات التالية
تنفيذ الملاحظات داخل التطبيق لتسهّل على المختبِرين إرسال ملاحظات حول تطبيقك (بما في ذلك لقطات الشاشة).
تعرَّف على كيفية عرض تنبيهات داخل التطبيق. إلى المختبِرين عند توفُّر إصدارات جديدة من تطبيقك للتثبيت.
انتقِل إلى الدرس التطبيقي حول ترميز مجموعة حزمات تطبيق Android. للتعرّف على كيفية توزيع إصدارات حِزمة التطبيق خطوة بخطوة.
تعرَّف على أفضل الممارسات لتوزيع تطبيقات Android إلى مختبِري ضمان الجودة باستخدام CI/CD.