1. ก่อนที่คุณจะเริ่ม
ใน Codelab นี้ คุณจะได้เรียนรู้วิธีใช้ Firebase App Distribution และปลั๊กอิน fastlane เพื่อแจกจ่ายแอป iOS ไปยังผู้ทดสอบ รวบรวม UDID ของอุปกรณ์ทดสอบ และลงทะเบียนไปยังโปรไฟล์การจัดสรรของแอป เพื่อให้คุณสร้าง Ad Hoc builds สำหรับผู้ทดสอบได้อย่างรวดเร็ว ' มือ.
สิ่งที่คุณจะได้เรียนรู้
- วิธีอัปโหลดและแจกจ่ายแอป iOS รุ่นก่อนเผยแพร่ (Ad Hoc) ไปยังผู้ทดสอบโดยใช้ Firebase App Distribution และ fastlane
- วิธีสมัครเป็นผู้ทดสอบและดาวน์โหลดแอปแบบกระจายบนอุปกรณ์ทดสอบ
- วิธีลงทะเบียนอุปกรณ์ทดสอบอย่างรวดเร็วด้วยการส่งออก UDID ของอุปกรณ์ทดสอบด้วยปลั๊กอิน fastlane ของ App Distribution
- วิธีอัปเดตโปรไฟล์การจัดสรรของแอปและอัปโหลดซ้ำเพื่อเผยแพร่
สิ่งที่คุณต้องการ
- บัญชี Google
- เครื่อง Apple ที่ติดตั้ง XCode 11.7+
- แอป iOS รุ่นก่อนเผยแพร่ Ad Hoc ที่สร้างขึ้นใน Xcode
- บัญชีนักพัฒนา Apple แบบชำระเงิน
- อุปกรณ์ iOS จริงสำหรับการทดสอบ
แอปตัวจำลอง iOS จะใช้งานได้กับ Codelab ส่วนใหญ่ แต่ตัวจำลองไม่สามารถดาวน์โหลดรุ่นต่างๆ ได้
คุณยังคงตรวจสอบได้ว่าการตั้งค่าใช้งานได้โดยตรวจสอบว่าปุ่ม "ดาวน์โหลด" ปรากฏบนเว็บแอปตัวทดสอบการแจกจ่ายแอป
2. เริ่มต้น
ตั้งค่า ช่องทางด่วน
App Distribution ทำงานร่วมกับ fastlane เพื่อให้คุณสามารถแจกจ่ายบิลด์ก่อนเผยแพร่ของแอปได้โดยอัตโนมัติ App Distribution ทำงานร่วมกับการกำหนดค่า fastlane ของคุณ
- ติดตั้งและตั้งค่า fastlane
- รัน
fastlane init
ในไดเร็กทอรีรากของโปรเจ็กต์ของคุณระหว่างการติดตั้ง และเลือก "ตั้งค่าด้วยตนเอง" คุณจะเห็นไดเร็กทอรีย่อยชื่อfastlane
ที่มีFastfile
,Appfile
และPluginfile
ซึ่งคุณจะใช้ในการกำหนดค่า fastlane
3. สร้างแอปของคุณด้วย fastlane
สร้างแอปของคุณ
- ตั้งค่าตัวแปรส่วนกลางสำหรับ fastlane ใน
./fastlane/Appfile.
รวม ID ของแอพและ Apple ID ของคุณ:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- สร้างเลนแรกของคุณและใช้การกระทำ build_app ของ
build_app
(หรือที่เรียกว่าgym
) เพื่อสร้างแอปของคุณโดยเพิ่มสิ่งต่อไปนี้ใน./fastlane/Fastfile
ของคุณ:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- ลงชื่อแอปของคุณเพื่อแจกจ่าย
สำหรับ Codelab นี้ คุณจะจัดการการรับรองและโปรไฟล์ของคุณเองโดยใช้ get_certificates
(หรือที่เรียกว่า cert
) ซึ่งจะสร้างใบรับรองการลงนามในเครื่องและจัดเก็บทุกอย่างไว้ในพวงกุญแจ macOS ของคุณ อย่างไรก็ตาม โดยทั่วไป คุณจะต้องใช้การดำเนินการ fastlane sync_code_signing action
(หรือเรียกอีกอย่างว่า match
) เพื่อจัดการใบรับรองและโปรไฟล์การเซ็นโค้ดของทีมคุณอย่างปลอดภัย
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- ตั้งค่าโปรไฟล์การจัดเตรียมสำหรับแอปของคุณโดยใช้การกระทำ
get_provisioning_profile
(หรือที่เรียกว่าsigh
) วิธีนี้ช่วยให้คุณแชร์แอปกับผู้ทดสอบได้
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [ไม่บังคับ] หากคุณไม่เคยเรียกใช้แอปมาก่อน ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างแอปของคุณในคอนโซลนักพัฒนาซอฟต์แวร์ของ Apple:
$ fastlane produce --skip_itc
- สุดท้าย สร้างแอปของคุณโดยใช้เลน
คุณจะได้รับแจ้งให้ป้อน Apple ID, รหัสผ่าน (ซึ่งจัดเก็บไว้ในพวงกุญแจของคุณ) และบันเดิล ID ของแอป
$ fastlane build
หากคุณประสบปัญหาใด ๆ โปรดดู คู่มือการแก้ไขปัญหา fastlane
4. อัปโหลดแอปของคุณไปที่ Firebase
เมื่อคุณสร้างแอปของคุณแล้ว คุณก็พร้อมที่จะอัปโหลดไปยัง App Distribution
สร้างและตั้งค่าโปรเจ็กต์ Firebase
- ลงชื่อเข้าใช้ Firebase
- ใน คอนโซล Firebase ให้ สร้างหรือเพิ่มโปรเจ็กต์ใหม่ จากนั้นตั้งชื่อโปรเจ็กต์ของคุณว่า "UDID Export Codelab"
คุณไม่จำเป็นต้องเปิดใช้งาน Google Analytics สำหรับโครงการนี้
- คลิก สร้างโครงการ
เพิ่มแอป iOS ของคุณในโครงการ
- คลิกไอคอน iOS เพื่อสร้างแอป Firebase iOS ใหม่และป้อน ID ชุดแอปของคุณ
- ข้ามขั้นตอนถัดไป จากนั้นคลิก Continue to console คุณจะเพิ่ม SDK ในแอปของคุณในภายหลัง
โครงการและแอปของคุณพร้อมใช้งานแล้วในหน้า ภาพรวมโครงการ
เปิดใช้งานการแจกจ่ายแอพ
- ในส่วน Release & Monitor ให้คลิก App Distribution
- หลังจากยอมรับข้อกำหนดแล้ว ให้คลิก "เริ่มต้น" เพื่อเปิดใช้งานการแจกจ่ายแอปสำหรับแอปของคุณ
ตั้งค่าการกระจายใน fastlane
- เรียกใช้คำสั่งต่อไปนี้จากรูทของโปรเจ็กต์ iOS ของคุณเพื่อเพิ่ม App Distribution ไปยังการกำหนดค่า fastlane ของคุณ
หากคำสั่งแจ้งให้คุณมีตัวเลือก ให้เลือก Option 3: RubyGems.org :
$ fastlane add_plugin firebase_app_distribution
- ยืนยันว่าติดตั้งปลั๊กอินแล้ว:
$ fastlane
ผลลัพธ์ควรแสดง fastlane-plugin-firebase_app_distribution
ในรายการปลั๊กอินที่ติดตั้ง
- หลังจากยืนยันการติดตั้งปลั๊กอินแล้ว ให้เลือกตัวเลือก 0 เพื่อยกเลิก
ตรวจสอบสิทธิ์โปรเจ็กต์ Firebase ของคุณ
หากต้องการใช้ปลั๊กอิน fastlane คุณต้องตรวจสอบสิทธิ์โปรเจ็กต์ Firebase ก่อน
- รันคำสั่งต่อไปนี้:
$ fastlane run firebase_app_distribution_login
- เมื่อคำสั่งพิมพ์ลิงก์การรับรองความถูกต้อง ให้เปิดลิงก์ในเบราว์เซอร์
- เมื่อได้รับแจ้ง ให้ลงชื่อเข้าใช้บัญชี Google และให้สิทธิ์เข้าถึงโปรเจ็กต์ Firebase
คัดลอกโค้ดที่ได้จากเบราว์เซอร์สำหรับเข้าสู่ระบบแล้ววางลงในบรรทัดคำสั่ง
- การดำเนินการเข้าสู่ระบบจะพิมพ์โทเค็นการรีเฟรช ซึ่งปลั๊กอิน App Distribution ใช้เพื่อรับรองความถูกต้องกับ Firebase:
- ส่งโทเค็นโดยการตั้งค่าตัวแปรสภาพแวดล้อม
FIREBASE_TOKEN
:
$ export FIREBASE_TOKEN=
<token>
แจกจ่ายแอปของคุณ
ตอนนี้คุณพร้อมที่จะเผยแพร่แอปของคุณแล้ว
- ที่ด้านบนสุดของ
./fastlane/Fastfile
ให้กำหนดตัวแปรชื่อfirebase_app_id
แทนที่<your_app_id>
ด้วย Firebase App ID สำหรับแอปที่คุณสร้างขึ้น (สามารถพบได้ในหน้า การตั้งค่าโปรเจ็ กต์)
Fastfile
เขียนด้วย Ruby ดังนั้นให้ใช้ไวยากรณ์ Ruby เพื่อกำหนดตัวแปร
firebase_app_id = "<your_app_id>"
- เพิ่มเลนใหม่ที่เรียกว่า
distribute
ที่เรียก build lane แล้วแจกจ่ายแอปของคุณโดยใช้การดำเนินการfirebase_app_distribution
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- เรียกใช้เลนใหม่เพื่อสร้างแอปของคุณและสร้างการแจกจ่าย
$ fastlane distribute
ณ จุดนี้ Fastfile ของคุณควรมีลักษณะดังนี้:
firebase_app_id = "<your Firebase app ID>"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
หลังจากรีเฟรชคอนโซล Firebase แล้ว คุณจะเห็นแอปออกรุ่นใหม่
5. เชิญผู้ทดสอบดาวน์โหลดแอปของคุณ
เมื่อผู้ทดสอบยอมรับคำเชิญให้ทดสอบบิลด์ Ad Hoc พวกเขาจะถูกขออนุญาตเพื่อแบ่งปัน UDID ของพวกเขา หากตกลงกัน App Distribution จะรวบรวมข้อมูลอุปกรณ์และแจ้งให้คุณทราบทางอีเมล ในส่วนนี้ คุณจะเพิ่มตัวเองเป็นผู้ทดสอบเพื่อดาวน์โหลดและทดสอบแอปที่คุณเผยแพร่
เพิ่มตัวเองเป็นผู้ทดสอบในการเปิดตัว
- ภายใต้
firebase_app_id
ที่ด้านบนสุดของ Fastfile ให้สร้างตัวแปรเพื่อเก็บผู้ทดสอบและรวมที่อยู่อีเมลของคุณเอง รวมทั้งที่อยู่อีเมลทางเลือกอื่นๆ ที่คุณต้องการลองใช้
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- ใช้วิธี Array#join ของ Ruby เพื่อเปลี่ยนอาร์เรย์
app_testers
เป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งพารามิเตอร์testers
คาดหวัง จากนั้น ส่งผลไปยังพารามิเตอร์testers
ของfirebase_app_distribution.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
ณ จุดนี้ Fastfile ของคุณควรมีลักษณะดังนี้:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
- วิ่งเลนอีกแล้ว
$ fastlane distribute
เมื่อคุณเรียกใช้เลน ผู้ทดสอบที่คุณเพิ่มจะได้รับอีเมลเชิญจาก App Distribution เพื่อแจ้งให้ทราบถึงการเปิดตัวใหม่ ในคอนโซล Firebase คุณจะเห็นผู้ทดสอบที่คุณเพิ่มไว้ภายใต้รุ่นของแอป
เนื่องจากคุณใส่ที่อยู่อีเมลแล้ว คุณจะได้รับอีเมลจาก Firebase App Distribution ที่เชิญให้คุณทดสอบแอป ตอนนี้คุณเป็นผู้ทดสอบคนแรกแล้ว! ดำเนินการต่อในส่วนด้านล่างเพื่อตั้งค่าเป็นผู้ทดสอบในอุปกรณ์ทดสอบของคุณ
ลงทะเบียนอุปกรณ์ทดสอบของคุณ
ในฐานะผู้ทดสอบ คุณจะต้องลงชื่อเข้าใช้ Google บนอุปกรณ์ทดสอบของคุณเพื่อเข้าถึงรุ่นของแอปที่คุณได้รับเชิญให้ทดสอบ เนื่องจากรุ่นทดสอบของคุณเป็นรุ่นเฉพาะกิจ คุณจึงต้องลงทะเบียนอุปกรณ์ทดสอบของคุณด้วยการติดตั้งโปรไฟล์ Firebase หลังจากนั้น คุณสามารถเข้าถึงรุ่นต่างๆ ที่คุณสามารถใช้ได้จากเว็บแอปตัวทดสอบ App Distribution โดยใช้เว็บคลิปที่เพิ่มลงในหน้าจอหลักของอุปกรณ์ของคุณ
- บนอุปกรณ์ทดสอบ iOS ของคุณ ให้เปิดอีเมลที่ส่งจาก Firebase App Distribution แล้วแตะลิงก์ เริ่มต้น ใช้งาน อย่าลืมเปิดลิงก์ใน Safari
- ตอนนี้คุณอยู่ในเว็บแอปทดสอบ App Distribution tester ในหน้าที่ปรากฏขึ้น ให้ลงชื่อเข้าใช้ด้วยบัญชี Google ของคุณแล้วแตะ ยอมรับคำเชิญ
- ขณะนี้คุณสามารถดูการเผยแพร่ที่คุณได้รับเชิญได้ แตะ ลงทะเบียนอุปกรณ์ ภายใต้รุ่นใดรุ่นหนึ่ง
- เมื่อได้รับแจ้ง ให้ดาวน์โหลดโปรไฟล์ Firebase จากนั้นติดตั้งโปรไฟล์ในแอปการตั้งค่า
การติดตั้งโปรไฟล์ให้สิทธิ์ Firebase เพื่อ:
- ลงทะเบียนอุปกรณ์ทดสอบโดยรวบรวม ID อุปกรณ์เฉพาะของอุปกรณ์ (UDID)
Firebase ส่งอีเมลถึงเจ้าของและผู้แก้ไขทั้งหมดของโปรเจ็กต์ Firebase ที่มี UDID ของอุปกรณ์ทดสอบ
- ติดตั้งเว็บคลิปลงในหน้าจอหลักของอุปกรณ์ทดสอบ คลิปเว็บจะเปิดเว็บแอปตัวทดสอบการแจกจ่ายแอป ซึ่งช่วยให้คุณติดตั้งและเข้าถึงแอปทดสอบทั้งหมดของคุณได้
ในเว็บแอปตัวทดสอบการแจกจ่ายแอป อุปกรณ์ทดสอบของคุณได้รับการลงทะเบียนสำหรับการเปิดตัวแอปของคุณแล้ว
เมื่อคุณแชร์ UDID ของอุปกรณ์ทดสอบกับ Firebase แล้ว คุณกลับมาเป็นนักพัฒนาต่อได้ ใน แท็บผู้ทดสอบ ของ แดชบอร์ดการแจกจ่ายแอป ข้อมูลผู้ทดสอบของคุณจะปรากฏภายใต้รุ่นของแอปโดยมีสถานะเป็น "ยอมรับ":
ในส่วนถัดไป คุณจะต้องเพิ่ม UDID ของอุปกรณ์ลงในโปรไฟล์การจัดเตรียมของแอป จากนั้นจึงสร้างเวอร์ชันของแอปที่ทำงานร่วมกับอุปกรณ์ทดสอบของคุณ
ส่งออก UDID ของอุปกรณ์ทดสอบของคุณ
ในฐานะนักพัฒนา คุณจะได้รับอีเมลจาก Firebase ที่มี UDID ของอุปกรณ์ทดสอบ App Distribution ช่วยให้รวบรวม UDID ของอุปกรณ์ใหม่หลายรายการพร้อมกันได้ง่ายๆ โดยให้คุณส่งออกโดยตรงจากคอนโซล Firebase เป็นไฟล์ข้อความดิบ
- หากต้องการส่งออก UDID ทั้งหมด ให้เปิดแท็บผู้ ทดสอบและกลุ่ม
- คลิก ส่งออก Apple UDID
ไฟล์ควรมี UDID ของอุปกรณ์ทดสอบของคุณ
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
UDID ยังสามารถส่งออกจากบรรทัดคำสั่งโดยใช้ fastlane ซึ่งคุณจะต้องดำเนินการในส่วนถัดไป
6. อัปเดตโปรไฟล์การจัดสรรแอปของคุณและสร้างใหม่
ตอนนี้ คุณจะเพิ่ม UDID ของอุปกรณ์ทดสอบลงในโปรไฟล์การจัดเตรียมของแอป สร้างเวอร์ชันของแอปที่ใช้งานได้กับอุปกรณ์ของคุณอีกครั้ง และเผยแพร่เวอร์ชันใหม่
เพิ่ม ช่องทาง ส่งออก UDID
- เพิ่มตัวแปรอื่นที่ด้านบนของ Fastfile และตั้งค่าเป็นเส้นทางไฟล์ที่จะดาวน์โหลด UDID ของอุปกรณ์ของผู้ทดสอบ
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- ตั้งค่าเลนใหม่ที่ใช้การดำเนินการส่งออก UDID ของปลั๊กอิน App Distribution เพื่อดาวน์โหลด UDID ของผู้ทดสอบ เช่นเดียวกับที่คุณทำจากคอนโซล
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- เรียกใช้เลนต่อไปนี้เพื่อดาวน์โหลด UDID
$ fastlane download_udids
- พิมพ์ไฟล์ที่ดาวน์โหลดซึ่งควรมี UDID ของอุปกรณ์ทดสอบ
$ cat tester_udids.txt
เพิ่ม อุปกรณ์ไปยังคอนโซลนักพัฒนาของ Apple
- สร้างเลนต่อไปนี้เพื่อเพิ่ม UDID ลงในรายการอุปกรณ์ของคุณในคอนโซลนักพัฒนาของ Apple เพื่อให้คุณสามารถเพิ่มลงในโปรไฟล์การจัดเตรียมของคุณโดยใช้การกระทำ
register_devices
ของ fastlane :
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- จากนั้นให้วิ่งเลน:
$ fastlane add_new_devices
จากนั้นคุณควรเห็นอุปกรณ์ใหม่ใน รายการอุปกรณ์ ของคอนโซลนักพัฒนาซอฟต์แวร์
เพิ่มอุปกรณ์ในโปรไฟล์การจัดเตรียมของคุณ
- เพิ่มอาร์กิวเมนต์
force
ไปยังขั้นตอนโปรไฟล์การจัดสรรในเลนbuild
ของคุณเพื่อบังคับให้รับอุปกรณ์ใหม่ทุกครั้งที่คุณสร้าง
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
เรียกใช้เลนซ้ำเพื่อสร้างและอัปโหลด
ตอนนี้ คุณจะอัปเดตช่องทางการ distribute
ของคุณด้วยช่องทางใหม่เพื่อเพิ่มอุปกรณ์ในโปรไฟล์การจัดเตรียม สร้างแอปใหม่ แล้วแจกจ่าย
- เรียกเลนใหม่จาก
distribute
:
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: "1:123456789:ios:abcd1234",
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
- เรียกใช้ช่องทาง
distribute
:
$ fastlane distribute
ณ จุดนี้ Fastfile ของคุณควรมีลักษณะดังนี้:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
ดาวน์โหลดรุ่นจากอุปกรณ์ทดสอบ
เมื่อแอปของคุณมี UDID ของอุปกรณ์ทดสอบแล้ว ก็สามารถติดตั้งลงในอุปกรณ์ทดสอบได้
- บนอุปกรณ์ทดสอบของคุณ ให้กลับไปที่เว็บแอปตัวทดสอบ App Distribution โดยใช้ลิงก์ในอีเมลหรือไอคอนบนหน้าจอหลักของอุปกรณ์
เมื่อคุณไปที่แอป UDID codelab คุณจะเห็นว่ารุ่นดังกล่าวพร้อมให้ดาวน์โหลดแล้ว
- หากคุณใช้อุปกรณ์จริง ให้กดดาวน์โหลด จากนั้นติดตั้งและเรียกใช้แอป!
7. ขอแสดงความยินดี
ตอนนี้คุณได้กำหนดค่า App Distribution และ fastlane เพื่อทำให้กระบวนการทดสอบก่อนเผยแพร่เป็นไปโดยอัตโนมัติ ตอนนี้ เมื่อคุณต้องการเชิญผู้ทดสอบเพิ่มเติม หรือเพิ่ม UDID ของพวกเขาในแอปของคุณ คุณจะต้องเรียกใช้คำสั่งเดียวเท่านั้น: fastlane distribute
.
ดังนั้นจึงไม่ต้องรวบรวม UDID จากผู้ทดสอบหรือไปที่คอนโซลนักพัฒนาซอฟต์แวร์ของ Apple เพื่ออัปเดตรายการอุปกรณ์หรือโปรไฟล์การจัดเตรียมอีกต่อไป คุณไม่จำเป็นต้องเปิด XCode!
เวิร์กโฟลว์นี้ตั้งค่าได้ง่ายเพื่อให้ทำงานเป็นรายชั่วโมงหรือรายวันในสภาพแวดล้อมการรวมอย่างต่อเนื่องของคุณ
อ่านเพิ่มเติม
- สำรวจ ฟีเจอร์ของ Firebase App Distribution รวมถึง SDK ในแอปสำหรับ iOS
- เรียนรู้เพิ่มเติมเกี่ยวกับ fastlane
- จัดการการเซ็นรหัสทีมของคุณด้วย
match
- รวม fastlane เข้ากับ CI . ของคุณ