Check out what’s new from Firebase at Google I/O 2022. Learn more

แจกจ่ายแอพ Android ให้กับผู้ทดสอบโดยใช้ Gradle

คุณสามารถรวม App Distribution เข้ากับกระบวนการสร้าง Android ของคุณได้โดยใช้ปลั๊กอิน App Distribution Gradle ปลั๊กอินช่วยให้คุณระบุผู้ทดสอบและบันทึกประจำรุ่นในไฟล์ build.gradle ของแอป ช่วยให้คุณกำหนดค่าการแจกจ่ายสำหรับประเภทบิลด์และตัวแปรต่างๆ ของแอปได้

คู่มือนี้อธิบายวิธีแจกจ่าย APK ไปยังผู้ทดสอบโดยใช้ปลั๊กอิน App Distribution Gradle

ก่อนจะเริ่ม

หากคุณยังไม่ได้ เพิ่ม Firebase ในโครงการ Android ของคุณ

หากคุณไม่ได้ใช้ผลิตภัณฑ์ Firebase อื่นๆ คุณต้องสร้างโปรเจ็กต์และลงทะเบียนแอปของคุณเท่านั้น อย่างไรก็ตาม หากคุณตัดสินใจใช้ผลิตภัณฑ์เพิ่มเติมในอนาคต อย่าลืมทำตามขั้นตอนทั้งหมดในหน้าที่ลิงก์ด้านบนนี้

ขั้นตอนที่ 1. ตั้งค่าโปรเจ็กต์ Android ของคุณ

  1. ในไฟล์ Gradle ระดับโปรเจ็กต์ของคุณ (โดยปกติคือ android/build.gradle ) ให้เพิ่มปลั๊กอิน App Distribution เป็นการพึ่งพา buildscript:

    buildscript {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
            jcenter()
        }
        dependencies {
            // Add the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.1'
        }
    }
    
  2. ในไฟล์ Gradle ระดับแอปของคุณ (โดยปกติคือ android/app/build.gradle ) ให้รวมปลั๊กอิน App Distribution ไว้ด้านล่างปลั๊กอิน Android:

    apply plugin: 'com.android.application'
    // ...
    
    // Apply the App Distribution Gradle plugin
    apply plugin: 'com.google.firebase.appdistribution'
    // ...
    
  3. หากคุณอยู่เบื้องหลังพร็อกซีหรือไฟร์วอลล์ขององค์กร ให้เพิ่ม คุณสมบัติระบบ Java ต่อไปนี้ที่ช่วยให้ App Distribution สามารถอัปโหลดการแจกจ่ายของคุณไปยัง Firebase:

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

ขั้นตอนที่ 2 ตรวจสอบสิทธิ์ด้วย Firebase

ก่อนที่คุณจะใช้ปลั๊กอิน Gradle ได้ คุณต้องตรวจสอบสิทธิ์กับโปรเจ็กต์ Firebase ก่อน มีสามวิธีในการบรรลุเป้าหมายนี้:

ขั้นตอนที่ 3 กำหนดค่าคุณสมบัติการกระจายของคุณ

  1. ในไฟล์ app/build.gradle กำหนดค่า App Distribution โดยเพิ่มอย่างน้อยหนึ่งส่วน firebaseAppDistribution ตัวอย่างเช่น ในการแจกจ่ายบิลด์ที่ release ไปยังผู้ทดสอบ:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    artifactType="APK"
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    
  2. สามารถกำหนดค่า App Distribution สำหรับ ประเภทบิลด์และรสชาติของผลิตภัณฑ์ ตัวอย่างเช่น ในการแจกจ่ายการ 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"
              }
          }
        }
    
        // ...
    }
    
  3. ใช้พารามิเตอร์ต่อไปนี้เพื่อกำหนดค่าการกระจาย:

พารามิเตอร์บิลด์การแจกจ่ายแอป
appId

รหัสแอป Firebase ของแอปของคุณ จำเป็นก็ต่อเมื่อคุณไม่ได้ติดตั้งปลั๊กอิน Google Services Gradle คุณสามารถค้นหา App ID ได้ในไฟล์ 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 App Distribution

คุณสามารถระบุกลุ่มเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคของนามแฝงกลุ่ม:

groups="qa-team, android-testers"

หรือคุณสามารถระบุพาธไปยังไฟล์ที่มีรายชื่อนามแฝงกลุ่มที่คั่นด้วยเครื่องหมายจุลภาค:

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

พิมพ์ stacktrace สำหรับข้อยกเว้นผู้ใช้ สิ่งนี้มีประโยชน์เมื่อทำการดีบักปัญหา

ขั้นตอนที่ 4 แจกจ่ายแอปของคุณให้กับผู้ทดสอบ

  1. สุดท้าย ในการจัดแพ็กเกจแอปทดสอบและเชิญผู้ทดสอบ ให้สร้างเป้าหมาย BUILD-VARIANT และ appDistributionUpload BUILD-VARIANT ด้วย Gradle wrapper ของโปรเจ็กต์ของคุณ โดยที่ BUILD-VARIANT เป็นผลิตภัณฑ์เสริมรสชาติและประเภทบิลด์ที่คุณกำหนดค่าไว้ในขั้นตอนก่อนหน้า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรสชาติของผลิตภัณฑ์ โปรดดูที่ กำหนดค่าตัวเลือกรุ่น

    ตัวอย่างเช่น หากต้องการเผยแพร่แอปของคุณโดยใช้เวอร์ชันบิลด์ที่ release ให้เรียกใช้คำสั่งต่อไปนี้:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    หรือหากคุณตรวจสอบสิทธิ์ด้วย บัญชี Google ของคุณและไม่ได้ให้ข้อมูลประจำตัวในไฟล์ Gradle build ของคุณ ให้รวมตัวแปร 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> ตัวอย่างเช่น:

    • ในการอัปโหลดบิลด์การดีบักไปยัง App Distribution:

      ./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 ของคุณ นี่เป็นอาร์กิวเมนต์เดียวกับที่ใช้โดยการดำเนินการอัปโหลด

เมื่อคุณเผยแพร่บิลด์ บิลด์จะพร้อมใช้งานในแดชบอร์ดการแจกจ่ายแอปของคอนโซล Firebase เป็นเวลา 150 วัน (5 เดือน) เมื่อบิลด์มีอายุ 30 วันนับจากหมดอายุ การแจ้งการหมดอายุจะปรากฏในคอนโซลและรายการบิลด์ของผู้ทดสอบในอุปกรณ์ทดสอบ

ผู้ทดสอบที่ไม่ได้รับเชิญให้ทดสอบแอปจะได้รับคำเชิญทางอีเมลเพื่อเริ่มต้น และผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่าบิวด์ใหม่พร้อมที่จะทดสอบ (อ่านคู่มือการ ตั้งค่าผู้ทดสอบ สำหรับคำแนะนำในการติดตั้งแอปทดสอบ) คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละคนได้ว่าพวกเขายอมรับคำเชิญหรือไม่และดาวน์โหลดแอปในคอนโซล Firebase หรือไม่

ผู้ทดสอบมีเวลา 30 วันในการยอมรับคำเชิญให้ทดสอบแอปก่อนที่จะหมดอายุ เมื่อคำเชิญหมดอายุ 5 วัน การแจ้งการหมดอายุจะปรากฏในคอนโซล Firebase ถัดจากผู้ทดสอบในรุ่น สามารถต่ออายุคำเชิญได้โดยส่งใหม่โดยใช้เมนูแบบเลื่อนลงในแถวผู้ทดสอบ

ขั้นตอนต่อไป

ไปที่ Codelab ของ Android App Bundle เพื่อเรียนรู้วิธีเผยแพร่ App Bundle รุ่นต่างๆ ทีละขั้นตอน