เฟรมเวิร์ก 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
เพื่อให้การค้นพบเครือข่ายภายในสําเร็จใน iOS 14คุณจะต้องเพิ่มทั้ง
_googlecast._tcp
และ_<your-app-id>._googlecast._tcp
เป็นบริการเพื่อให้การค้นพบอุปกรณ์ทำงานได้อย่างถูกต้องappID คือ receiverID ซึ่งเป็นรหัสเดียวกับที่กําหนดไว้ใน
GCKDiscoveryCriteria
อัปเดตคำนิยาม
NSBonjourServices
ของตัวอย่างต่อไปนี้ และแทนที่ "ABCD1234" ด้วยรหัสแอปของคุณ -
เพิ่ม
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 Developer
การตั้งค่า 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 (ไม่ใช่ไปยังโปรเจ็กต์ 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 ขึ้นไป โดยทําตามวิธีการที่ระบุไว้ในที่เก็บ GitHub ของ Protobuf
-
ในโปรเจ็กต์ Xcode ให้เพิ่ม Flag
-ObjC -lc++
ไปที่การตั้งค่าการสร้าง > Flag อื่นๆ ของ Linker -
ค้นหาโฟลเดอร์ Resources ในไดเรกทอรีที่แตกไฟล์แล้ว และลาก
GoogleCastCoreResources.bundle
,GoogleCastUIResources.bundle
และMaterialDialogs.bundle
ไปไว้ในโปรเจ็กต์ข้างGoogleCast.xcframework
ที่คุณเพิ่มไว้ก่อนหน้านี้ เลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด
การตั้งค่า Mac Catalyst
สำหรับแอปที่รองรับ Mac Catalyst ให้ใช้ไลบรารีแบบไดนามิกของ Cast SDK ทําตามขั้นตอนการตั้งค่าด้วยตนเองเพื่อเพิ่มเฟรมเวิร์กลงในโปรเจ็กต์ จากนั้นยกเว้น Cast SDK จากเป้าหมาย Mac แบบมีเงื่อนไขตามที่ระบุไว้ในเอกสารประกอบของ Apple ไลบรารีแบบคงที่ได้รับการคอมไพล์ไว้ล่วงหน้าสำหรับสถาปัตยกรรม iOS ซึ่งทำให้เกิดข้อผิดพลาดของ linker เมื่อสร้างกับเป้าหมาย Mac