Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Phân phối ứng dụng Android cho người thử nghiệm bằng Gradle

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Bạn có thể tích hợp Phân phối ứng dụng vào quy trình xây dựng Android của mình bằng cách sử dụng plugin Lớp phân phối ứng dụng. Plugin cho phép bạn chỉ định người thử nghiệm và ghi chú phát hành trong tệp build.gradle của ứng dụng, cho phép bạn định cấu hình bản phân phối cho các loại bản dựng và biến thể khác nhau của ứng dụng.

Hướng dẫn này mô tả cách phân phối APK cho người thử nghiệm bằng cách sử dụng plugin Lớp phân phối ứng dụng.

Trước khi bắt đầu

Nếu bạn chưa có, hãy thêm Firebase vào dự án Android của bạn .

Nếu không sử dụng bất kỳ sản phẩm Firebase nào khác, bạn chỉ cần tạo một dự án và đăng ký ứng dụng của mình. Tuy nhiên, nếu bạn quyết định sử dụng các sản phẩm bổ sung trong tương lai, hãy nhớ hoàn thành tất cả các bước trên trang được liên kết ở trên.

Bước 1. Thiết lập dự án Android của bạn

  1. Trong tệp Gradle cấp gốc (cấp dự án) ( <project>/build.gradle hoặc <project>/build.gradle.kts ), hãy thêm plugin Cấp phân phối ứng dụng làm phụ thuộc bản dựng:

    hấp dẫn

    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.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    Kotlin

    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.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  2. Trong tệp Gradle mô -đun (cấp ứng dụng) của bạn (thường là <project>/<app-module>/build.gradle hoặc <project>/<app-module>/build.gradle.kts ), hãy thêm plugin Cấp độ phân phối ứng dụng:

    hấp dẫn

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

    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")
    }
    
  3. Nếu bạn đang sử dụng tường lửa hoặc proxy công ty, hãy thêm thuộc tính hệ thống Java sau để cho phép Phân phối ứng dụng tải các bản phân phối của bạn lên Firebase:

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

Bước 2. Xác thực với Firebase

Trước khi bạn có thể sử dụng plugin Gradle, trước tiên bạn phải xác thực với dự án Firebase của mình theo một trong các cách sau. Theo mặc định, plugin Gradle tìm kiếm thông tin đăng nhập từ Firebase CLI nếu không sử dụng phương thức xác thực nào khác.

Bước 3. Định cấu hình thuộc tính phân phối của bạn

Trong tệp Gradle mô -đun (cấp ứng dụng) của bạn (thường là <project>/<app-module>/build.gradle hoặc <project>/<app-module>/build.gradle.kts ), định cấu hình Phân phối ứng dụng bằng cách thêm ít nhất một phần firebaseAppDistribution .

Ví dụ: để phân phối bản release cho người thử nghiệm, hãy làm theo các hướng dẫn sau::

hấp dẫn

android {

  // ...

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

  // ...
}

Kotlin

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

  // ...
}

Bạn có thể định cấu hình Phân phối ứng dụng cho các loại bản dựng và hương vị sản phẩm .

Ví dụ: để phân phối các bản dựng debugrelease ở dạng sản phẩm "demo" và "đầy đủ", hãy làm theo các hướng dẫn sau:

hấp dẫn

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

  // ...
}

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

  // ...
}

Sử dụng các tham số sau để định cấu hình phân phối:

Thông số bản dựng phân phối ứng dụng
appId

ID ứng dụng Firebase của ứng dụng của bạn. Chỉ bắt buộc nếu bạn chưa cài đặt plugin Google Services Gradle. Bạn có thể tìm ID ứng dụng trong tệp google-services.json hoặc trong bảng điều khiển Firebase trên trang Cài đặt chung . Giá trị trong tệp build.gradle của bạn sẽ ghi đè giá trị đầu ra từ plugin google-services .

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

Đường dẫn đến tệp JSON khóa riêng của tài khoản dịch vụ của bạn. Chỉ bắt buộc nếu bạn sử dụng xác thực tài khoản dịch vụ.

artifactType

Chỉ định loại tệp của ứng dụng của bạn. Có thể được đặt thành "AAB" hoặc "APK" .

artifactPath

Đường dẫn tuyệt đối đến tệp APK hoặc AAB mà bạn muốn tải lên.

releaseNotes hoặc releaseNotesFile

Ghi chú phát hành cho bản dựng này.

Bạn có thể chỉ định trực tiếp ghi chú phát hành hoặc đường dẫn đến tệp văn bản thuần túy.

testers hoặc testersFile

Địa chỉ email của những người thử nghiệm mà bạn muốn phân phối bản dựng.

Bạn có thể chỉ định người kiểm tra dưới dạng danh sách địa chỉ email được phân tách bằng dấu phẩy:

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

Hoặc, bạn có thể chỉ định đường dẫn đến tệp chứa danh sách địa chỉ email được phân tách bằng dấu phẩy:

testersFile="/path/to/testers.txt"
groups hoặc groupsFile

Nhóm người thử nghiệm mà bạn muốn phân phối bản dựng (xem Quản lý người thử nghiệm ). Các nhóm được chỉ định bằng cách sử dụng bí danh nhóm , mà bạn có thể tìm thấy trong tab Người kiểm tra trong bảng điều khiển Phân phối ứng dụng Firebase.

Bạn có thể chỉ định các nhóm dưới dạng danh sách bí danh nhóm được phân tách bằng dấu phẩy:

groups="qa-team, android-testers"

Hoặc, bạn có thể chỉ định đường dẫn đến tệp chứa danh sách bí danh nhóm được phân tách bằng dấu phẩy:

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

In ra stacktrace cho các trường hợp ngoại lệ của người dùng. Điều này rất hữu ích khi gỡ lỗi các vấn đề.

Bước 4. Phân phối ứng dụng của bạn cho người thử nghiệm

  1. Cuối cùng, để đóng gói ứng dụng thử nghiệm của bạn và mời người thử nghiệm, hãy xây dựng các mục tiêu BUILD-VARIANTappDistributionUpload BUILD-VARIANT bằng trình bao bọc Gradle của dự án, trong đó BUILD-VARIANT là hương vị sản phẩm tùy chọn và loại bản dựng mà bạn đã định cấu hình ở bước trước. Để biết thêm thông tin về hương vị sản phẩm, hãy xem Định cấu hình biến thể bản dựng .

    Ví dụ: để phân phối ứng dụng của bạn bằng cách sử dụng biến thể bản dựng release , hãy chạy lệnh sau:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Hoặc, nếu bạn đã xác thực bằng Tài khoản Google của mình và không cung cấp thông tin đăng nhập trong tệp bản dựng Gradle, hãy bao gồm biến FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. Bạn cũng có thể ghi đè các giá trị đã đặt trong tệp build.gradle của mình bằng cách chuyển các đối số dòng lệnh ở dạng --<property-name>=<property-value> . Ví dụ:

    • Để tải bản dựng gỡ lỗi lên Phân phối ứng dụng:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Để mời thêm người thử nghiệm hoặc xóa người thử nghiệm hiện tại khỏi dự án Firebase của bạn:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Khi người thử nghiệm đã được thêm vào dự án Firebase của bạn, bạn có thể thêm họ vào các bản phát hành riêng lẻ. Những người thử nghiệm bị xóa sẽ không còn quyền truy cập vào các bản phát hành trong dự án của bạn nhưng vẫn có thể giữ quyền truy cập vào các bản phát hành của bạn trong một khoảng thời gian.

    Bạn cũng có thể chỉ định người kiểm tra bằng cách sử dụng --file="/path/to/testers.txt" thay vì --emails .

    Các tác vụ appDistributionAddTestersappDistributionRemoveTesters cũng chấp nhận các đối số sau:

    • projectNumber : Số dự án Firebase của bạn.

    • serviceCredentialsFile : Đường dẫn đến tệp thông tin đăng nhập dịch vụ Google của bạn. Đây là cùng một đối số được sử dụng bởi hành động tải lên.

Sau khi bạn phân phối bản dựng của mình, bản dựng đó sẽ có sẵn trong bảng điều khiển Phân phối ứng dụng của bảng điều khiển Firebase trong 150 ngày (năm tháng). Khi bản dựng còn 30 ngày kể từ ngày hết hạn, thông báo hết hạn sẽ xuất hiện trong cả bảng điều khiển và danh sách bản dựng của người thử nghiệm trên thiết bị thử nghiệm của họ.

Những người thử nghiệm chưa được mời thử nghiệm ứng dụng sẽ nhận được lời mời qua email để bắt đầu và những người thử nghiệm hiện tại sẽ nhận được thông báo qua email rằng bản dựng mới đã sẵn sàng để thử nghiệm (hãy đọc hướng dẫn thiết lập dành cho người thử nghiệm để biết cách cài đặt ứng dụng thử nghiệm). Bạn có thể theo dõi trạng thái của từng người thử nghiệm-liệu họ có chấp nhận lời mời hay không và liệu họ có tải xuống ứng dụng hay không-trong bảng điều khiển Firebase.

Người thử nghiệm có 30 ngày để chấp nhận lời mời thử nghiệm ứng dụng trước khi hết hạn. Khi lời mời còn 5 ngày kể từ ngày hết hạn, thông báo hết hạn sẽ xuất hiện trong bảng điều khiển Firebase bên cạnh trình thử nghiệm trên bản phát hành. Bạn có thể gia hạn lời mời bằng cách gửi lại lời mời bằng menu thả xuống trên hàng người thử nghiệm.

Bước tiếp theo