ตั้งแต่ iOS 14 เป็นต้นไป ระบบปฏิบัติการจะบังคับใช้ข้อจำกัดและสิทธิ์ใหม่ๆ ที่ส่งผลต่อประสบการณ์ของผู้ใช้ Cast รวมถึงส่งผลต่อวิธีที่คุณสร้าง Cast SDK ลงในแอปด้วย คุณต้องทำการอัปเดตเพื่อจัดการการเปลี่ยนแปลงสิทธิ์เหล่านี้เพื่อให้แอปยังคงมีฟังก์ชันการทำงานของ Cast กับ iOS เวอร์ชันล่าสุด
iOS 14
นักพัฒนาแอปควรอัปเดตแอปผู้ส่ง Cast ใน iOS เป็น Google Cast SDK เวอร์ชัน 4.6.0 ขึ้นไป เนื่องจากเวอร์ชันเหล่านี้รองรับ iOS 14 และข้อกำหนดของ iOS 14
ตั้งแต่ iOS 14 เป็นต้นไป แอปพลิเคชันที่สแกนหาอุปกรณ์ในเครือข่าย LAN จะแสดงกล่องโต้ตอบสิทธิ์แบบครั้งเดียวให้ผู้ใช้เพื่อค้นหาและเชื่อมต่อกับอุปกรณ์ในเครือข่าย LAN แพลตฟอร์ม Cast ใช้เครือข่าย LAN เพื่อค้นหาและควบคุมอุปกรณ์ Cast ดังนั้นหากผู้ใช้ปฏิเสธสิทธิ์ ก็จะแคสต์ไม่ได้
เราจะทำการปรับเปลี่ยน UX บางอย่างใน SDK สำหรับแอปที่ใช้ตัวเลือกอุปกรณ์มาตรฐานเพื่อปรับปรุงประสบการณ์ของผู้ใช้ การปรับเปลี่ยน UX เหล่านี้จะช่วยให้ผู้ใช้เข้าใจได้ง่ายขึ้นว่าทำไมจึงต้องมีสิทธิ์เข้าถึงเครือข่าย LAN รวมถึงวิธีเปิดใช้การแคสต์หากปิดใช้การเข้าถึงอุปกรณ์ในเครือข่าย LAN
แอปที่สร้างด้วย Cast SDK เวอร์ชัน 4.4.8 ลงไปจะยังคงทำงานได้ตราบใดที่สร้างด้วย Xcode 11.7 ลงไป หากคุณสร้างแอปสำหรับ iOS 14 ด้วย Xcode 12 ขึ้นไป เราขอแนะนำให้อัปเดตเป็น Cast SDK เวอร์ชัน 4.6.0 ขึ้นไปเพื่อให้แอป Cast ยังคงทำงานได้อย่างถูกต้อง
คุณสามารถดาวน์โหลด Cast iOS SDK เวอร์ชัน 4.6.0 ขึ้นไปด้วย CocoaPods โดยทำตาม การตั้งค่า CocoaPods หรือดาวน์โหลดด้วยตนเองโดย ทำตามการตั้งค่าด้วยตนเอง เวอร์ชันนี้มีการเปลี่ยนแปลงกลไกการค้นหาพื้นฐานเพื่อให้แอปที่สร้างด้วย Xcode 12 ค้นหาอุปกรณ์ Cast ในเครือข่ายได้ ปุ่มแคสต์ควรแสดงอยู่เสมอ หากไม่มีอุปกรณ์ที่พร้อมใช้งานเมื่อผู้ใช้แตะปุ่ม Cast ระบบจะแสดงกล่องโต้ตอบพร้อมคำแนะนำเกี่ยวกับสาเหตุที่อุปกรณ์อาจไม่พร้อมใช้งาน รวมถึงข้อมูลเกี่ยวกับวิธีเปิดใช้สิทธิ์เข้าถึงเครือข่าย LAN อีกครั้ง
การเปลี่ยนแปลง Cast SDK
การแคสต์ครั้งแรก
เมื่อผู้ใช้พยายามแคสต์เป็นครั้งแรก กล่องโต้ตอบคั่นระหว่างหน้าการเข้าถึงเครือข่าย LAN (LNA) จะปรากฏขึ้นเพื่ออธิบายเหตุผลที่ต้องมีการเข้าถึงเครือข่าย LAN ตามด้วยข้อความแจ้งสิทธิ์เข้าถึงเครือข่าย LAN ของ iOS ที่ Apple จัดหาให้ ภาพจำลองด้านล่างแสดงขั้นตอนการทำงาน

Cast ไม่พร้อมใช้งาน
ตั้งแต่ iOS Sender SDK เวอร์ชัน 4.6.0 เป็นต้นไป ปุ่มแคสต์ จะปรากฏขึ้นเสมอเมื่อผู้ใช้เชื่อมต่อกับ Wi-Fi เมื่ออุปกรณ์ Cast ไม่พร้อมใช้งาน การแตะปุ่มแคสต์จะแสดงกล่องโต้ตอบพร้อมคำแนะนำเกี่ยวกับสาเหตุที่เป็นไปได้ที่ Cast ไม่พร้อมใช้งาน ดังที่แสดงในภาพจำลองด้านล่าง

การอัปเดตแอปใน iOS 14
-
เพิ่ม Cast iOS SDK เวอร์ชัน 4.8.6 ลงในโปรเจ็กต์
หากใช้ CocoaPods ให้ใช้
pod updateเพื่อเพิ่ม SDK เวอร์ชัน 4.8.6 ลงในโปรเจ็กต์ -
เพิ่ม
NSBonjourServicesลงในInfo.plistระบุ
NSBonjourServicesในInfo.plistเพื่อ ให้การค้นหาเครือข่าย LAN สำเร็จใน iOS 14คุณจะต้องเพิ่มทั้ง
_googlecast._tcpและ_<your-app-id>._googlecast._tcpเป็นบริการเพื่อให้การค้นหาอุปกรณ์ ทำงานได้อย่างถูกต้องappID คือ receiverID ซึ่งเป็นรหัสเดียวกับที่กำหนดไว้ใน
GCKDiscoveryCriteriaอัปเดตคำจำกัดความ
NSBonjourServicesในตัวอย่างต่อไปนี้และ แทนที่ "ABCD1234" ด้วย appID -
เพิ่ม
NSLocalNetworkUsageDescriptionลงในInfo.plistเราขอแนะนำอย่างยิ่งให้คุณปรับแต่งข้อความที่แสดงในข้อความแจ้งเครือข่าย LAN โดยเพิ่มสตริงสิทธิ์เฉพาะแอปในไฟล์
Info.plistของแอปสำหรับNSLocalNetworkUsageDescriptionเช่น เพื่ออธิบายการค้นหา Cast และบริการค้นหาอื่นๆ เช่น DIALข้อความนี้จะปรากฏเป็นส่วนหนึ่งของกล่องโต้ตอบการเข้าถึงเครือข่าย LAN ของ iOS ดังที่ แสดงในภาพจำลอง
-
เผยแพร่แอปอีกครั้งไปยัง Apple App Store
เราขอแนะนำให้คุณเผยแพร่แอปอีกครั้งโดยใช้เวอร์ชัน 4.8.6 โดยเร็วที่สุด
การปรับแต่ง
การเริ่มต้นการค้นหาอุปกรณ์แคสต์
โดยค่าเริ่มต้น ระบบจะเริ่มการค้นหาอุปกรณ์ Cast เมื่อผู้ใช้แตะปุ่ม Cast (GCKUICastButton) เป็นครั้งแรก หากผู้ใช้พยายามใช้แอป Cast ในเครือข่าย LAN เป็นครั้งแรกหลังจากอัปเกรดเป็น iOS 14 กล่องโต้ตอบคั่นระหว่างหน้า LNA ใหม่จะปรากฏขึ้นตามด้วยกล่องโต้ตอบสิทธิ์เข้าถึงเครือข่าย LAN ของ iOS
มีแฟล็กใหม่ให้คุณควบคุมเวลาที่การค้นหาอุปกรณ์จะเริ่มขึ้นและลักษณะการทำงานขององค์ประกอบบางอย่างใน UX ดังนี้
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
ค่าเริ่มต้นคือ true แฟล็กนี้ใช้ได้เฉพาะเมื่อตั้งค่าแฟล็ก
GCKCastOptions::disableDiscoveryAutostart
เป็น false
หากตั้งค่าเป็น true การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นเมื่อผู้ใช้แตะ GCKUICastButton เป็นครั้งแรก ระบบจะแสดงข้อความข้อมูลให้ผู้ใช้ทราบเหตุผลที่ต้องมีสิทธิ์เข้าถึงเครือข่าย LAN หลังจากข้อความดังกล่าว ข้อความ LNA ของ iOS 14 จะปรากฏขึ้น
การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นหลังจากที่ผู้ใช้รับทราบข้อความ
GCKUICastButton จะแสดงขึ้นเสมอในการเปิดแอปครั้งต่อๆ ไป
หากตั้งค่าเป็น false การค้นหาอุปกรณ์จะเริ่มขึ้นตามค่าของ
แฟล็ก
GCKCastOptions::disableDiscoveryAutostart
คำถามที่พบบ่อย
จะเกิดอะไรขึ้นหากฉันเผยแพร่แอปผู้ส่ง Cast อีกครั้งด้วย Cast SDK เวอร์ชัน 4.4.8 และ Xcode 12
แอปของคุณอาจค้นหาอุปกรณ์ Cast ในเครือข่าย LAN ไม่ได้ เว้นแต่คุณจะได้รับสิทธิ์แบบมัลติแคสต์เครือข่ายจาก Apple โปรดทราบว่า Apple จะไม่ให้สิทธิ์แบบมัลติแคสต์เพื่อวัตถุประสงค์ในการรองรับ Cast เพียงอย่างเดียว หากคุณวางแผนที่จะสร้างแอปด้วย Xcode 12 คุณควรเผยแพร่แอป ด้วย Cast เวอร์ชัน 4.6.0
หากฉันเผยแพร่แอปอีกครั้งด้วย Cast SDK ใหม่ ผู้ใช้ที่ใช้ iOS 13 ลงไปจะได้รับประสบการณ์การใช้งานอย่างไร
ผู้ใช้จะยังคงได้รับประสบการณ์การใช้งานแบบเดิมที่เคยได้รับก่อนที่จะเผยแพร่แอปอีกครั้ง การเปลี่ยนแปลงที่ผู้ใช้เห็นจะจำกัดอยู่เฉพาะผู้ใช้ที่ใช้ iOS 14
ฉันจะต้องทำอย่างไรเพื่ออัปเดตแอปเมื่อมีการเผยแพร่ Cast SDK เวอร์ชันใหม่
- อัปเดต
Info.plistของแอปให้มีคำอธิบายการใช้งานเครือข่าย LAN - เพิ่ม
NSBonjourServicesลงในInfo.plistของแอปและระบุชื่อบริการ Bonjour สำหรับ Cast และ appID - อัปเกรดแอปผู้ส่งเพื่อใช้ Cast SDK เวอร์ชัน 4.6.0
- เผยแพร่แอปอีกครั้งไปยัง Apple App Store
เหตุใดอุปกรณ์จึงหยุดแสดงในตัวเลือกอุปกรณ์ที่กำหนดเอง หลังจากที่ฉันอัปเกรดเป็นเวอร์ชัน 4.6.0
ปัญหานี้เป็นปัญหาที่ทราบอยู่แล้วซึ่งอาจเกิดขึ้นหากคุณใช้ตัวเลือกอุปกรณ์ที่กำหนดเอง
แทนตัวเลือกอุปกรณ์มาตรฐาน ใน Cast SDK เวอร์ชัน 4.4.8 ลงไป
การสแกนอุปกรณ์จะเป็นไปโดยอัตโนมัติ ตั้งแต่เวอร์ชัน
4.6.0 เป็นต้นไป คุณจะต้องเรียกใช้เมธอด startDiscovery
ในคลาส
GCKDiscoveryManager อย่างชัดเจนเพื่อเริ่มการค้นหาอุปกรณ์
เหตุผลของการเปลี่ยนแปลงนี้คือข้อความแจ้งสิทธิ์เข้าถึงเครือข่าย LAN (LNA) จะปรากฏขึ้นหลังจากที่แอปสแกนเป็นครั้งแรก ซึ่งอาจทำให้กล่องโต้ตอบสิทธิ์ปรากฏขึ้นแบบสุ่มในแอป
นักพัฒนาแอปที่สร้างตัวเลือกอุปกรณ์ที่กำหนดเองสำหรับแอปจะต้องแสดงกล่องโต้ตอบคั่นระหว่างหน้าแบบครั้งเดียวก่อนที่จะเริ่มการสแกนอุปกรณ์เป็นครั้งแรกใน iOS 14
iOS 13
iOS 13 มีข้อกำหนดด้านสิทธิ์ใหม่ๆ ที่ส่งผลต่อแอปที่ใช้ Google Cast SDK
ตั้งแต่ Google Cast SDK เวอร์ชัน 4.4.3 เป็นต้นไป จะมี SDK เพิ่มเติมที่ไม่ต้องใช้สิทธิ์ Bluetooth® โดย SDK นี้มีให้ใช้งานทั้งในเว็บไซต์สำหรับนักพัฒนาแอปและใน
Cocoapods ใหม่google-cast-sdk-no-bluetooth
รายละเอียดแอป
รายละเอียดต่อไปนี้จะแตกต่างกันไปตามเวอร์ชันของ iOS SDK ที่คุณใช้อยู่ในปัจจุบัน
แอปที่สร้างด้วย iOS 12 SDK ลงไป
- แนะนำให้ดำเนินการ ประสิทธิภาพการค้นหาอุปกรณ์อาจลดลงเมื่อทำงานบน iOS 13 แต่จะยังคงใช้งานได้ เราขอแนะนำอย่างยิ่งให้นักพัฒนาแอปอัปเกรดเป็น Cast SDK เวอร์ชัน 4.4.4 เมื่อพร้อมใช้งาน
- iOS 13 จะแจ้งให้ผู้ใช้ให้สิทธิ์ Bluetooth® แก่แอป
แอปที่สร้างด้วย iOS 13 SDK
- ต้องดำเนินการ: อัปเดตเป็น Cast SDK เวอร์ชัน 4.4.4 หรือปุ่มแคสต์อาจไม่ปรากฏขึ้นหากผู้ใช้ไม่ให้สิทธิ์เข้าถึงตำแหน่ง คุณต้องอัปเกรดเป็น Cast SDK เวอร์ชัน 4.4.4 เพื่อให้การแคสต์ใน iOS 13 เป็นไปอย่างราบรื่น