Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

แจกจ่ายแอพ 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 เป็นพึ่งพา 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:2.2.0'
        }
    }
    
  2. ในแฟ้ม Gradle การตรวจสอบระดับของคุณ (ปกติ android/app/build.gradle ) รวมถึงการกระจายปลั๊กอิน App ด้านล่างปลั๊กอิน Android:

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

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

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

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

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

  1. ในของคุณ app/build.gradle ไฟล์การกำหนดค่าการกระจาย App โดยการเพิ่มอย่างน้อยหนึ่ง 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 สามารถกำหนดค่าสำหรับการ สร้างชนิดและรสชาติสินค้า ยกตัวอย่างเช่นในการกระจาย 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"

apkPath

พารามิเตอร์นี้เลิกใช้แล้ว ใช้ artifactPath แทน

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

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

groups="qa-team, android-testers"

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

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

พิมพ์ 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 ไฟล์โดยผ่านอาร์กิวเมนต์บรรทัดคำสั่งในรูปแบบของ -PappDistribution-<property-name>=<property-value> ตัวอย่างเช่น:

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

      ./gradlew bundleDebug appDistributionUploadDebug
          -PappDistribution-artifactType="APK"
      
    • หากต้องการเชิญผู้ทดสอบเพิ่มเติมหรือนำผู้ทดสอบที่มีอยู่ออกจากโปรเจ็กต์ Firebase ให้ทำดังนี้

      ./gradlew bundleDebug appDistributionAddTesters
          --emails="anothertester@email.com, moretesters@email.com"
       ./gradlew appDistributionRemoveTesters
           --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 ที่เผยแพร่โดยขั้นตอน