Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

يمكنك دمج توزيع التطبيقات في عملية إنشاء نظام Android الخاص بك باستخدام البرنامج الإضافي لتوزيع التطبيقات Gradle. يتيح لك المكون الإضافي تحديد المختبرين وملاحظات الإصدار في ملف build.gradle الخاص بتطبيقك ، مما يتيح لك تكوين توزيعات لأنواع إنشاء ومتغيرات مختلفة لتطبيقك.

يصف هذا الدليل كيفية توزيع ملفات APK على المختبرين باستخدام المكون الإضافي App Distribution Gradle.

قبل ان تبدأ

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

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

الخطوة 1. قم بإعداد مشروع Android الخاص بك

  1. في ملف Gradle على مستوى الجذر (على مستوى المشروع) ( <project>/build.gradle أو <project>/build.gradle.kts ) ، أضف البرنامج الإضافي App Distribution Gradle باعتباره تبعية buildscript:

    رائع

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath 'com.android.tools.build:gradle:7.2.0'
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath 'com.google.gms:google-services:4.3.15'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
      }
    }
    

    كوتلن

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath("com.android.tools.build:gradle:7.2.0")
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath("com.google.gms:google-services:4.3.15")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:4.0.0")
      }
    }
    
  2. في ملف Gradle (على مستوى التطبيق) الوحدة النمطية الخاصة بك (عادةً <project>/<app-module>/build.gradle أو <project>/<app-module>/build.gradle.kts ) ، أضف إضافة App Distribution Gradle:

    رائع

    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'
    }
    

    كوتلن

    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")
    }
    
  3. إذا كنت تعمل خلف جدار حماية أو وكيل شركة ، فأضف خاصية نظام Java التالية التي تمكّن توزيع التطبيقات من تحميل توزيعاتك إلى Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

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

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

الخطوة 3. تكوين خصائص التوزيع الخاصة بك

في ملف Gradle (على مستوى التطبيق) الوحدة النمطية الخاصة بك (عادةً ما يكون <project>/<app-module>/build.gradle أو <project>/<app-module>/build.gradle.kts ) ، قم بتهيئة توزيع التطبيق عن طريق إضافة ما لا يقل عن قسم واحد firebaseAppDistribution .

على سبيل المثال ، لتوزيع نسخة release على المختبرين ، اتبع التعليمات التالية:

رائع

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

كوتلن

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

يمكنك تكوين توزيع التطبيقات لأنواع الإنشاءات ونكهات المنتجات .

على سبيل المثال ، لتوزيع إصدارات debug release في نكهات المنتج "التجريبية" و "الكاملة" ، اتبع الإرشادات التالية:

رائع

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"
          }
      }
  }

  // ...
}

كوتلن

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"
          }
      }
  }

  // ...
}

استخدم المعلمات التالية لتكوين التوزيع:

معلمات بناء توزيع التطبيق
appId

معرّف تطبيق Firebase لتطبيقك. مطلوب فقط إذا لم يكن لديك المكون الإضافي Google Services Gradle مثبتًا. يمكنك العثور على معرف التطبيق في ملف google-services.json أو في وحدة تحكم Firebase في صفحة الإعدادات العامة . تتجاوز القيمة الموجودة في ملف build.gradle القيمة الناتجة من المكوّن الإضافي google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

المسار إلى ملف JSON الخاص بالمفتاح الخاص لحساب الخدمة. مطلوب فقط إذا كنت تستخدم مصادقة حساب الخدمة.

artifactType

يحدد نوع ملف التطبيق الخاص بك. يمكن ضبطه على "AAB" أو "APK" .

artifactPath

المسار المطلق لملف APK أو AAB الذي تريد تحميله.

releaseNotes أو releaseNotesFile

ملاحظات الإصدار لهذا البناء.

يمكنك إما تحديد ملاحظات الإصدار مباشرة أو المسار إلى ملف نص عادي.

testers أو testersFile

عناوين البريد الإلكتروني للمختبرين الذين تريد توزيع البنيات عليهم.

يمكنك تحديد المختبرين كقائمة عناوين بريد إلكتروني مفصولة بفواصل:

testers="ali@example.com, bri@example.com, cal@example.com"

أو يمكنك تحديد المسار إلى ملف يحتوي على قائمة عناوين بريد إلكتروني مفصولة بفواصل:

testersFile="/path/to/testers.txt"
groups أو groupsFile

مجموعات المختبرين التي تريد توزيع البنيات عليها (راجع إدارة المختبرين ). يتم تحديد المجموعات باستخدام مجموعة الأسماء المستعارة ، والتي يمكنك العثور عليها في علامة التبويب "المختبرون" في وحدة تحكم توزيع تطبيقات Firebase.

يمكنك تحديد المجموعات كقائمة مفصولة بفواصل من الأسماء المستعارة للمجموعة:

groups="qa-team, android-testers"

أو يمكنك تحديد المسار إلى ملف يحتوي على قائمة مفصولة بفواصل من الأسماء المستعارة للمجموعة:

groupsFile="/path/to/tester-groups.txt"
stacktrace

يطبع تتبع المكدس لاستثناءات المستخدم. هذا مفيد عند تصحيح الأخطاء.

الخطوة 4. وزع تطبيقك على المختبرين

  1. أخيرًا ، لحزم تطبيق الاختبار الخاص بك ودعوة المختبرين ، قم ببناء الأهداف BUILD-VARIANT و appDistributionUpload BUILD-VARIANT مع غلاف Gradle الخاص بمشروعك ، حيث يكون BUILD-VARIANT هو نكهة المنتج الاختيارية ونوع البناء الذي قمت بتكوينه في الخطوة السابقة. لمزيد من المعلومات حول نكهات المنتج ، راجع تكوين متغيرات البناء .

    على سبيل المثال ، لتوزيع تطبيقك باستخدام متغير release ، قم بتشغيل الأمر التالي:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    أو ، إذا قمت بالمصادقة باستخدام حساب Google الخاص بك ولم تقدم بيانات الاعتماد في ملف إنشاء Gradle الخاص بك ، فقم بتضمين متغير FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. يمكنك أيضًا تجاوز القيم المحددة في ملف build.gradle الخاص بك عن طريق تمرير وسيطات سطر الأوامر في شكل --<property-name>=<property-value> . على سبيل المثال:

    • لتحميل إصدار تصحيح الأخطاء إلى توزيع التطبيقات:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • لدعوة مختبرين إضافيين أو إزالة المختبرين الحاليين من مشروع 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 : رقم مشروع Firebase الخاص بك.

    • serviceCredentialsFile : المسار إلى ملف بيانات اعتماد خدمة Google. هذه هي نفس الحجة التي يستخدمها إجراء التحميل.

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

  • firebase_console_uri - رابط إلى وحدة تحكم Firebase تعرض إصدارًا واحدًا. يمكنك مشاركة هذا الرابط مع المطورين الآخرين في مؤسستك.
  • testing_uri - رابط للإصدار في تجربة المختبرين (تطبيق Android الأصلي) يتيح للمختبرين عرض ملاحظات الإصدار وتثبيت التطبيق على أجهزتهم. يحتاج المُختبِر إلى الوصول إلى الإصدار من أجل استخدام الرابط.
  • binary_download_uri - رابط موقع يقوم بتنزيل التطبيق الثنائي وتثبيته مباشرةً (ملف APK أو AAB). تنتهي صلاحية الرابط بعد ساعة واحدة.

بمجرد توزيع التصميم الخاص بك ، يصبح متاحًا في لوحة معلومات توزيع التطبيقات لوحدة تحكم Firebase لمدة 150 يومًا (خمسة أشهر). عند مرور 30 ​​يومًا على انتهاء صلاحية الإصدار ، يظهر إشعار انتهاء الصلاحية في كل من وحدة التحكم وقائمة البنيات الخاصة بالمختبرين على جهاز الاختبار الخاص بهم.

يتلقى المختبِرون الذين لم تتم دعوتهم لاختبار التطبيق دعوات بالبريد الإلكتروني للبدء ، ويتلقى المختبِرون الحاليون إشعارات بالبريد الإلكتروني تفيد بأن البناء الجديد جاهز للاختبار (اقرأ دليل إعداد المُختبِر للحصول على إرشادات حول كيفية تثبيت التطبيق التجريبي). يمكنك مراقبة حالة كل مُختبِر - ما إذا كان قد قبل الدعوة وما إذا كان قد قام بتنزيل التطبيق - في وحدة تحكم Firebase.

لدى المختبرين 30 يومًا لقبول دعوة لاختبار التطبيق قبل انتهاء صلاحيته. عندما تكون الدعوة بعد 5 أيام من انتهاء صلاحيتها ، يظهر إشعار انتهاء الصلاحية في وحدة تحكم Firebase بجوار المُختبِر في الإصدار. يمكن تجديد الدعوة عن طريق إعادة إرسالها باستخدام القائمة المنسدلة في صف المختبر.

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