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

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

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