สิทธิ์และการค้นพบบน iOS

ตั้งแต่ iOS 14 เป็นต้นไป ระบบปฏิบัติการจะบังคับใช้ข้อจำกัดใหม่และ สิทธิ์ที่ส่งผลต่อประสบการณ์ของผู้ใช้ Cast และยังส่งผลต่อวิธีที่คุณ สร้าง Cast SDK ในแอปของคุณ เพื่อให้แอปรักษาฟังก์ชันการแคสต์ไว้ ด้วย iOS เวอร์ชันล่าสุด คุณต้องทำการอัปเดตเพื่อจัดการ การเปลี่ยนแปลงสิทธิ์

iOS 14

นักพัฒนาซอฟต์แวร์ควรอัปเดตแอปผู้ส่ง iOS Cast เป็น Google Cast SDK v4.6.0 ขึ้นไป เวอร์ชันเหล่านี้รองรับ iOS 14 และข้อกําหนดของ iOS

แอปพลิเคชันที่สแกนหาอุปกรณ์ในเครือข่าย LAN เริ่มตั้งแต่ iOS 14 จะแสดงข้อความแจ้งผู้ใช้ด้วยกล่องโต้ตอบสิทธิ์แบบครั้งเดียวเพื่อค้นหาและเชื่อมต่อ อุปกรณ์เครือข่ายภายใน แพลตฟอร์ม Cast ใช้เครือข่ายเฉพาะที่เพื่อสำรวจและ ควบคุมอุปกรณ์แคสต์ ดังนั้นหากผู้ใช้ปฏิเสธสิทธิ์ ก็จะไม่สามารถ แคสต์

เรากำลังปรับเปลี่ยน UX บางส่วนใน SDK เพื่อปรับปรุงประสบการณ์ของผู้ใช้ สำหรับแอปที่ใช้เครื่องมือเลือกอุปกรณ์มาตรฐาน การแก้ไข UX เหล่านี้ ทำให้ผู้ใช้เข้าใจได้ชัดเจนยิ่งขึ้นว่าทำไมจึงต้องมีสิทธิ์เข้าถึงเครือข่ายภายใน รวมถึงวิธีเปิดใช้การแคสต์หากมีการเข้าถึงอุปกรณ์เครือข่ายภายใน ปิดใช้อยู่

แอปที่สร้างด้วย Cast SDK เวอร์ชันที่ใช้ v4.4.8 หรือเก่ากว่านั้นจะทำงานต่อ ใช้งานได้ตราบใดที่อุปกรณ์สร้างด้วย Xcode 11.7 หรือรุ่นก่อนหน้า หากคุณ สำหรับ iOS 14 ที่มี Xcode 12 ขึ้นไป เราขอแนะนำให้อัปเดตเป็น Cast SDK เวอร์ชัน 4.6.0 ขึ้นไปเพื่อให้แน่ใจว่าแอป Cast จะทำงานต่อไปได้อย่างถูกต้อง

คุณสามารถดาวน์โหลด Cast iOS SDK v4.6.0 ขึ้นไปได้ด้วย CocoaPods โดยทำตามขั้นตอนต่อไปนี้ การตั้งค่า CocoaPods หรือด้วยตนเองโดย ตามการตั้งค่าด้วยตนเอง รุ่นนี้ มีการเปลี่ยนแปลงกลไกการค้นหาที่สำคัญ เพื่อให้แอปที่ ที่สร้างด้วย Xcode 12 เพื่อค้นหาอุปกรณ์แคสต์ในเครือข่าย ปุ่ม "แคสต์" ควร เป็นจอแสดงผลตลอดเวลา หากไม่มีอุปกรณ์ที่พร้อมใช้งานเมื่อผู้ใช้แตะ "แคสต์" กล่องโต้ตอบจะปรากฏขึ้น ซึ่งจะแนะนำสาเหตุที่อุปกรณ์ ซึ่งรวมถึงข้อมูลเกี่ยวกับวิธีเปิดใช้การเข้าถึงเครือข่ายภายในอีกครั้ง สิทธิ์

การเปลี่ยนแปลง Cast SDK

การแคสต์ครั้งแรก

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

ขั้นตอนการให้สิทธิ์การเข้าถึงเครือข่าย LAN

แคสต์ไม่พร้อมใช้งาน

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

โฟลว์กับแคสต์ไม่พร้อมใช้งาน

การอัปเดตแอปใน iOS 14

  1. เพิ่ม Cast iOS SDK 4.8.1 ลงในโปรเจ็กต์ของคุณ

    หากใช้ CocoaPods ให้ใช้ pod update เพื่อเพิ่ม SDK 4.8.1 ในโปรเจ็กต์ของคุณ

    หรือไม่เช่นนั้น ดึง SDK ด้วยตัวเอง

  2. เพิ่ม NSBonjourServices ลงใน Info.plist

    ระบุ NSBonjourServices ใน Info.plist เพื่อ ทำให้การค้นหาเครือข่าย LAN ประสบความสำเร็จใน iOS 14

    คุณจะต้องเพิ่มทั้ง _googlecast._tcp และ _<your-app-id>._googlecast._tcp เป็นบริการสำหรับอุปกรณ์ เพื่อให้การค้นหาทำงานได้อย่างเหมาะสม

    appID คือ ReceiverID ซึ่งเป็นรหัสเดียวกับที่ระบุไว้ใน GCKDiscoveryCriteria

    อัปเดตตัวอย่างคำจำกัดความ NSBonjourServices ต่อไปนี้และ แทนที่ "ABCD1234" ด้วยรหัสแอปของคุณ

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. เพิ่ม NSLocalNetworkUsageDescription ลงใน Info.plist

    เราขอแนะนำให้คุณปรับแต่งข้อความที่แสดงใน ข้อความแจ้งเกี่ยวกับเครือข่ายด้วยการเพิ่มสตริงสิทธิ์เฉพาะแอปลงใน Info.plist ไฟล์สำหรับ NSLocalNetworkUsageDescription เช่น เพื่ออธิบายการแคสต์ บริการสำรวจและบริการค้นพบอื่นๆ เช่น DIAL

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} ใช้เครือข่ายเฉพาะที่เพื่อสำรวจอุปกรณ์ที่พร้อมใช้งาน Cast บน Wi-Fi
    เครือข่าย</string>

    ข้อความนี้จะปรากฏเป็นส่วนหนึ่งของกล่องโต้ตอบการเข้าถึงเครือข่าย LAN ของ iOS เป็น ที่แสดงในภาพจำลอง

    รูปภาพกล่องโต้ตอบสิทธิ์เข้าถึงเครือข่ายภายในของแคสต์
  4. เผยแพร่แอปใน Apple App Store อีกครั้ง

    เราขอแนะนำให้คุณเปิดตัวแอปอีกครั้งโดยใช้ 4.8.1 ด้วย โดยเร็วที่สุด

การปรับแต่ง

การเริ่มต้นการค้นหาอุปกรณ์แคสต์

โดยค่าเริ่มต้น การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นเมื่อผู้ใช้แตะเป็นครั้งแรก ปุ่ม "แคสต์" (GCKUICastButton) หากนี่เป็นครั้งแรกที่ผู้ใช้ พยายามใช้แอป Cast บนเครือข่ายภายในหลังจากอัปเกรดเป็น iOS 14 โฆษณาคั่นระหว่างหน้า LNA ใหม่จะปรากฏขึ้น ตามด้วยเครือข่ายท้องถิ่นของ iOS กล่องโต้ตอบสิทธิ์การเข้าถึง

มีแฟล็กใหม่ซึ่งช่วยให้คุณควบคุมเวลาที่การค้นหาอุปกรณ์จะเริ่มต้นได้ และลักษณะการทำงานขององค์ประกอบบางอย่างของ UX ได้แก่

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

ค่าเริ่มต้นคือ true การตั้งค่าสถานะนี้จะใช้ได้เฉพาะเมื่อมีการตั้งค่าสถานะ GCKCastOptions::disableDiscoveryAutostart ตั้งค่าเป็น false

หากตั้งค่าเป็น true การค้นพบอุปกรณ์แคสต์จะเริ่มต้นเมื่อผู้ใช้แตะ GCKUICastButton เป็นครั้งแรก ข้อความให้ข้อมูลจะ เพื่อแจ้งให้ผู้ใช้ทราบว่าทำไมต้องใช้สิทธิ์เข้าถึงเครือข่ายภายใน ที่จำเป็น หลังจากข้อความดังกล่าว ข้อความ iOS 14 LNA จะแสดงขึ้นมา การค้นหาอุปกรณ์แคสต์จะเริ่มต้นหลังจากที่รับทราบข้อความแล้ว

ในการเปิดตัวแอปครั้งต่อๆ ไป GCKUICastButton จะแสดงเสมอ

หากตั้งค่าเป็น false การค้นพบอุปกรณ์จะเริ่มขึ้นตามค่าของ แจ้งว่าไม่เหมาะสม GCKCastOptions::disableDiscoveryAutostart

คำถามที่พบบ่อย

จะเกิดอะไรขึ้นหากฉันเผยแพร่ แอปผู้ส่งแคสต์ที่มี Cast SDK v4.4.8 และ Xcode 12 ใช่ไหม

แอปของคุณอาจไม่พบอุปกรณ์แคสต์ในเครือข่ายภายใน เว้นแต่คุณจะได้รับสิทธิ์เครือข่ายมัลติแคสต์จาก Apple โปรดทราบว่า Apple จะไม่ให้สิทธิ์มัลติแคสต์สำหรับ จุดประสงค์ในการรองรับ Cast หากวางแผนที่จะสร้างด้วย Xcode 12 คุณควรเผยแพร่แอป พร้อมแคสต์ 4.6.0

หากฉันเปิดตัวแอปอีกครั้งด้วย Cast SDK ใหม่ ผู้ใช้ของฉันจะใช้ iOS 13 หรือเวอร์ชันก่อนหน้าไหม

โดยผู้ใช้จะยังคงเห็นประสบการณ์การใช้งานแบบเดิม นำแอปมาเผยแพร่อีกครั้ง การเปลี่ยนแปลงที่ผู้ใช้มองเห็นจะจำกัดเฉพาะผู้ใช้เท่านั้น ที่ทำงานใน iOS 14

ฉันจะต้องทำอย่างไรเพื่ออัปเดตแอปเมื่อ Cast SDK เปิดตัวแล้วใช่ไหม

  • อัปเดตInfo.plistของแอปให้รวมเครือข่ายภายใน คำอธิบายการใช้งาน
  • เพิ่ม NSBonjourServices ลงในแอป Info.plist และระบุชื่อบริการ Bonjour สำหรับการแคสต์ และรหัสแอปของคุณ
  • อัปเกรดแอปผู้ส่งเพื่อใช้ Cast SDK 4.6.0
  • เผยแพร่แอปใน Apple App Store อีกครั้ง

ทำไมอุปกรณ์จึงหยุดแสดงในอุปกรณ์ที่กำหนดเองของฉัน หลังจากอัปเกรดเป็น 4.6.0

กรณีนี้เป็นปัญหาที่ทราบอยู่แล้ว ซึ่งอาจเกิดขึ้นได้หากคุณใช้อุปกรณ์ที่กำหนดเอง แทนเครื่องมือเลือกอุปกรณ์มาตรฐาน ในเวอร์ชัน 4.4.8 Cast SDK และเวอร์ชันก่อนหน้าเป็นการสแกนอุปกรณ์โดยอัตโนมัติ เริ่มต้นในเวอร์ชัน 4.6.0 คุณจะต้องเรียกใช้ startDiscovery อย่างชัดแจ้ง ใน GCKDiscoveryManager เพื่อเริ่มการค้นหาอุปกรณ์

สาเหตุของการเปลี่ยนแปลงนี้เนื่องจากการเข้าถึงเครือข่าย LAN (LNA) ข้อความแจ้งสิทธิ์จะปรากฏขึ้นหลังจากที่แอปสแกน การดำเนินการนี้อาจส่งผลให้กล่องโต้ตอบสิทธิ์ปรากฏขึ้นในตำแหน่งแบบสุ่ม ในแอปของคุณ

นักพัฒนาแอปที่สร้างเครื่องมือเลือกอุปกรณ์ที่กำหนดเองสำหรับแอปของตนจะ จะต้องแสดงโฆษณาคั่นระหว่างหน้าแบบครั้งเดียวก่อนเริ่มต้นอุปกรณ์ สแกนเป็นครั้งแรกใน iOS 14

iOS 13

ใน iOS 13 เราได้เปิดตัวข้อกำหนดใหม่เกี่ยวกับสิทธิ์ซึ่งส่งผลต่อ แอปที่ใช้ Google Cast SDK

สำหรับ Google Cast SDK v4.4.3 เป็นต้นไป มี SDK เพิ่มเติมพร้อมให้บริการที่ ไม่ต้องใช้สิทธิ์ Bluetooth® วิธีนี้ใช้ได้ทั้งในเวอร์ชันนักพัฒนาซอฟต์แวร์ ในเว็บไซต์และในเว็บไซต์ CocoaPods google-cast-sdk-no-bluetooth รายการ

รายละเอียดแอป

ต่อไปนี้เป็นรายละเอียดโดยขึ้นอยู่กับเวอร์ชันของ 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