เฟรมเวิร์ก Cast รองรับ iOS 14 ขึ้นไป และมีทั้ง เฟรมเวิร์กแบบคงที่และแบบไดนามิก
ดูคำอธิบายของคลาสและเมธอดทั้งหมดได้ในเอกสารอ้างอิง Google Cast iOS API
การตั้งค่า Xcode
iOS 14
-
เพิ่ม Cast iOS SDK 4.8.3 ลงในโปรเจ็กต์
หากใช้ CocoaPods ให้ใช้
pod update
เพื่อเพิ่ม SDK 4.8.3 ลงในโปรเจ็กต์หรือ ดึง 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ข้อความนี้จะปรากฏเป็นส่วนหนึ่งของกล่องโต้ตอบการเข้าถึงเครือข่าย LAN ของ iOS ดังที่แสดงในภาพจำลอง
-
เผยแพร่แอปอีกครั้งใน Apple App Store
นอกจากนี้ เราขอแนะนำให้คุณเผยแพร่แอปอีกครั้งโดยใช้เวอร์ชัน 4.8.3 โดยเร็วที่สุด
iOS 13
iOS 12
ตรวจสอบว่าสวิตช์เข้าถึงข้อมูล Wi-Fi ในส่วนความสามารถ ของเป้าหมายตั้งค่าเป็น "เปิด"
นอกจากนี้ โปรไฟล์การจัดสรรจะต้องรองรับความสามารถเข้าถึงข้อมูล Wi-Fi ด้วย คุณเพิ่มข้อมูลนี้ได้ในพอร์ทัลนักพัฒนาซอฟต์แวร์ของ Apple
การตั้งค่า CocoaPods
วิธีผสานรวม Google Cast ที่แนะนำคือการใช้
CocoaPods สำหรับการผสานรวม ให้ใช้
google-cast-sdk
CocoaPods
หากต้องการเริ่มต้นใช้งาน ให้ทำตามคู่มือเริ่มต้นใช้งาน
เมื่อตั้งค่า CocoaPods แล้ว ให้ทำตามคู่มือการใช้ CocoaPods
เพื่อสร้าง Podfile
และเตรียมโปรเจ็กต์ให้พร้อมใช้งานกับ Google Cast
SDK
ตัวอย่างวิธีเพิ่ม google-cast-sdk
CocoaPod ลงใน
Podfile
use_frameworks!
platform :ios, '14.0'
def target_pods
pod 'google-cast-sdk'
end
target 'CastVideos-objc' do
target_pods
end
target 'CastVideos-swift' do
target_pods
end
สำหรับโปรเจ็กต์ คุณควรกำหนดช่วงสำหรับพ็อดเพื่อป้องกันการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องโดยไม่คาดคิดตามที่ระบุไว้ในคำแนะนำเกี่ยวกับ Podfile
ในข้อมูลโค้ดนี้ ระบบจะอนุญาตเวอร์ชัน 4.8.3 และเวอร์ชันจนถึงเวอร์ชันหลักถัดไป (major.minor.patch)
pod 'google-cast-sdk', '~> 4.8.3'
เช่น "~> 1.6.7" จะรวมทุกเวอร์ชันตั้งแต่ 1.6.7 ขึ้นไป แต่ไม่รวมเวอร์ชัน 2.0.0
ตั้งค่าด้วยตนเอง
วิธีการต่อไปนี้มีไว้สำหรับการเพิ่ม Cast iOS SDK ลงในโปรเจ็กต์ โดยไม่ต้องใช้ CocoaPods
ดาวน์โหลด
หลังจากดาวน์โหลดไลบรารีที่เหมาะสมด้านล่างแล้ว ให้ทำตามขั้นตอนการตั้งค่าเพื่อเพิ่มเฟรมเวิร์กลงในโปรเจ็กต์
ไลบรารี Cast iOS Sender SDK 4.8.3
ขั้นตอนการตั้งค่า
วิธีติดตั้งไลบรารี
- ดาวน์โหลดและแตกไฟล์ SDK ที่เหมาะสมสำหรับโปรเจ็กต์ของคุณ
- ตั้งค่าไลบรารี GoogleCastSDK แบบไดนามิก
-
ลาก
.xcframework
ที่ไม่ได้ซิปไปยังโปรเจ็กต์หลักใน โปรเจ็กต์ Xcode Navigator (อย่าลากไปยังโปรเจ็กต์ Pods หากคุณมี) เลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด -
ในเป้าหมาย Xcode ให้เลือก
Embed and Sign
สำหรับGoogleCast.xcframework
ในแท็บGeneral
หากคุณกำลังตั้งค่าคลังแบบคงที่ ให้ทำตามขั้นตอนต่อไปนี้เพิ่มเติมจาก ขั้นตอนก่อนหน้า
- ตั้งค่าไลบรารี Protobuf ด้วยเวอร์ชันขั้นต่ำ v3.13
- หากโปรเจ็กต์ใช้ CocoaPods ให้ทำดังนี้
-
เปิด
Podfile
และนำgoogle-cast-sdk
ออก หากมีpod 'google-cast-sdk'
-
เพิ่มไลบรารี
Protobuf
หากยังไม่มีpod 'Protobuf', '3.13'
-
เรียกใช้
pod install
ในโฟลเดอร์รูทของโปรเจ็กต์ - หากโปรเจ็กต์ไม่ได้ใช้ CocoaPods ให้ทำดังนี้
-
นำ
GoogleCastSDK
เวอร์ชันปัจจุบันออก หากมี - เพิ่มไลบรารี Protobuf v3.13 ขึ้นไป โดยทำตามวิธีการที่อยู่ใน ที่เก็บข้อมูล Protobuf GitHub
-
ในโปรเจ็กต์ Xcode ให้เพิ่มแฟล็ก
-ObjC -lc++
ไปยัง Build Settings > Other Linker Flags -
ค้นหาโฟลเดอร์ Resources ในไดเรกทอรีที่ไม่ได้ซิป แล้ว
ลาก
GoogleCastCoreResources.bundle
GoogleCastUIResources.bundle
และMaterialDialogs.bundle
ไปไว้ในโปรเจ็กต์ข้างGoogleCast.xcframework
ที่คุณ เพิ่มไว้ก่อนหน้านี้ เลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด
การตั้งค่า Mac Catalyst
สำหรับแอปที่รองรับ Mac Catalyst ให้ใช้ไลบรารีแบบไดนามิกของ Cast SDK ทำตามขั้นตอนการตั้งค่าด้วยตนเองเพื่อเพิ่มเฟรมเวิร์กลงในโปรเจ็กต์ จากนั้นยกเว้น Cast SDK จากเป้าหมาย Mac โดยมีเงื่อนไขตามที่ระบุไว้ใน เอกสารประกอบของ Apple ไลบรารีแบบคงที่ได้รับการคอมไพล์ล่วงหน้าสำหรับสถาปัตยกรรม iOS ซึ่งทำให้เกิดข้อผิดพลาดของ Linker เมื่อสร้างเทียบกับเป้าหมาย Mac