การตั้งค่าสำหรับการพัฒนาด้วย Cast Application Framework (CAF) สำหรับ iOS

เฟรมเวิร์กของ Cast รองรับ iOS 13 ขึ้นไป และมีทั้งเฟรมเวิร์กแบบคงที่และแบบไดนามิก

ดูคำอธิบายคลาสและเมธอดทั้งหมดได้ที่เอกสารอ้างอิง Google Cast iOS API

ตั้งค่า Xcode

iOS 14

  1. เพิ่ม Cast iOS SDK 4.8.0 ลงในโปรเจ็กต์

    หากใช้ CocoaPods ให้ใช้ pod update เพื่อเพิ่ม SDK 4.8.0 ลงในโปรเจ็กต์

    มิเช่นนั้น ให้ ดึง SDK ด้วยตนเอง

  2. เพิ่ม NSBonjourServices ลงใน Info.plist ของคุณ

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

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

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

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

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Add NSLocalNetworkUsageDescription to your Info.plist

    We strongly recommend that you customize the message shown in the Local Network prompt by adding an app-specific permission string in your app's Info.plist file for the NSLocalNetworkUsageDescription such as to describe Cast discovery and other discovery services, like DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    This message will appear as part of the iOS Local Network Access dialog as shown in the mock.

    Cast Local Network Access permissions dialog image
  4. Re-release your app to the Apple App Store

    We recommend you also re-release your app using 4.8.0 as soon as possible.

iOS 13

iOS 12

Ensure that the Access WiFi Information switch in the Capabilities section of the target is set to "On".

Additionally, your provisioning profile will need to support the Access WiFi Information capability. This can be added in the Apple Developer Portal.

CocoaPods setup

The recommended way of integrating Google Cast is using CocoaPods. CocoaPods is supported for both the Universal Framework and XCFramework.

For a Universal Framework integration, use the google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods.

For an XCFramework integration, use the google-cast-sdk-xcframework and google-cast-sdk-no-bluetooth-xcframework CocoaPods.

To get started, follow the getting started guide.

Once CocoaPods is set up, follow the using CocoaPods guide to get your Podfile created and your project ready to use with the Google Cast SDK.

Here's an example of how to add the google-cast-sdk CocoaPod to your Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

ต่อไปนี้คือตัวอย่างวิธีเพิ่ม google-cast-sdk-no-bluetooth CocoaPod ลงใน Podfile

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk-no-bluetooth'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

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

ในข้อมูลโค้ดนี้ เวอร์ชัน 4.8.0 และเวอร์ชันจนถึงเวอร์ชันหลักถัดไป (major.minor.patch) ได้รับอนุญาต

pod 'google-cast-sdk', '~> 4.8.0'

เช่น "~> 1.6.7" จะรวมทุกเวอร์ชันตั้งแต่ 1.6.7 ขึ้นไป แต่ไม่รวมเวอร์ชัน 2.0.0

ตั้งค่าด้วยตนเอง

วิธีการต่อไปนี้มีไว้สำหรับการเพิ่ม Cast iOS SDK ลงในโปรเจ็กต์ของคุณโดยไม่ต้องใช้ CocoaPods

รายการที่ดาวน์โหลด

หลังจากดาวน์โหลดไลบรารีที่เหมาะสมด้านล่างแล้ว ให้ทำตามขั้นตอนการตั้งค่าเพื่อเพิ่มเฟรมเวิร์กลงในโปรเจ็กต์ของคุณ XCFrameworks มีข้อกำหนดในการตั้งค่าเหมือนกันกับ Universal Frameworks เดิม

เฟรมเวิร์กสากล

ไลบรารี Cast iOS Sender เวอร์ชัน 4.8.0

หยุดนิ่งขณะบลูทูธ หยุดนิ่งโดยไม่มีบลูทูธ

ไดนามิกด้วยบลูทูธ ไดนามิกแบบไม่มีบลูทูธ

XCFramework

Cast iOS SDK รองรับ XCFrameworks ช่วยให้พัฒนาคอมพิวเตอร์ Mac ที่ใช้ Apple Silicon รวมถึงการแก้ไขข้อบกพร่องด้วย iOS Simulator

ไลบรารี SDK XCFramework 4.8.0 ของ Cast iOS Sender:

XCFramework แบบคงที่พร้อมบลูทูธ XCFramework แบบคงที่โดยไม่ใช้บลูทูธ

XCFramework แบบไดนามิกพร้อมบลูทูธ ไดนามิก XCFramework แบบไม่ต้องใช้บลูทูธ

ขั้นตอนการตั้งค่า

วิธีติดตั้งไลบรารีแบบคงที่

  1. ดาวน์โหลดและแตกไฟล์ SDK แบบคงที่ที่เหมาะกับโปรเจ็กต์ของคุณ
  2. ตั้งค่าไลบรารี Protobuf ด้วยเวอร์ชันขั้นต่ำ v3.13
    1. หากโปรเจ็กต์ใช้ CocoaPods ให้ทำดังนี้
      1. เปิด Podfile และนำ google-cast-sdk ออก (หากมี):
        pod 'google-cast-sdk'
      2. เพิ่มไลบรารี Protobuf หากไม่มี:
        pod 'Protobuf', '3.13'
      3. เรียกใช้ pod install ในโฟลเดอร์รูทของโปรเจ็กต์
    2. หากโปรเจ็กต์ไม่ได้ใช้ CocoaPods ให้ทำดังนี้
      1. นำ GoogleCastSDK เวอร์ชันปัจจุบันออก หากมี
      2. เพิ่มไลบรารี Protobuf v3.13 หรือเวอร์ชันที่ใหม่กว่า โดยทำตามวิธีการที่อยู่ในที่เก็บ Protobuf GitHub
  3. ลาก .framework หรือ .xcframework ที่แยกแล้วไปยังโปรเจ็กต์หลักในตัวนำทางโปรเจ็กต์ Xcode (ไม่ใช่ลงในโปรเจ็กต์พ็อด หากมี) เลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด
  4. ในโปรเจ็กต์ Xcode ให้เพิ่มแฟล็ก -ObjC -lc++ ไปยังการตั้งค่าบิลด์ > แฟล็กอื่นๆ ของ Linker
  5. คลิกขวาที่ GoogleCast.framework หรือ GoogleCast.xcframework ในโปรเจ็กต์แล้วเลือก "แสดงใน Finder"
  6. ลาก GoogleCastCoreResources.bundle และ GoogleCastUIResources.bundle ลงในโปรเจ็กต์ข้าง GoogleCast.framework หรือ GoogleCast.xcframework ที่คุณเพิ่มไว้ก่อนหน้านี้ แล้วเลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด

วิธีติดตั้งไลบรารีแบบไดนามิก

  1. ดาวน์โหลดและคลายการบีบอัด SDK แบบไดนามิกที่เหมาะสมสำหรับโปรเจ็กต์ของคุณ
  2. ตั้งค่าไลบรารี GoogleCastSDK แบบไดนามิก
    1. หากโปรเจ็กต์ใช้ CocoaPods ให้ทำดังนี้
      1. เปิด Podfile และนำรายการต่อไปนี้ออก
        pod 'google-cast-sdk'
      2. เรียกใช้ pod install ในโฟลเดอร์รูทของโปรเจ็กต์
    2. หากโปรเจ็กต์ไม่ได้ใช้ CocoaPods ให้นำไลบรารี Google Cast ปัจจุบันออก
  3. ลาก .framework หรือ .xcframework ที่แยกแล้วไปยังโปรเจ็กต์หลักในตัวนำทางโปรเจ็กต์ Xcode (ไม่ใช่ลงในโปรเจ็กต์พ็อด หากมี) เลือก "คัดลอกรายการทั้งหมดหากจำเป็น" แล้วเพิ่มลงในเป้าหมายทั้งหมด
  4. ในเป้าหมาย Xcode ในแท็บ General ให้เลือก Embed and Sign สำหรับ GoogleCast.framework หรือ GoogleCast.xcframework

การตั้งค่า Mac Catalyst

สำหรับแอปที่รองรับ Mac Catalyst ให้ใช้ไลบรารีแบบไดนามิกของ Cast SDK ทำตามขั้นตอนการตั้งค่าด้วยตนเองเพื่อเพิ่มเฟรมเวิร์กลงในโปรเจ็กต์ จากนั้นให้ยกเว้น Cast SDK อย่างมีเงื่อนไขจากเป้าหมาย Mac ตามที่ได้กล่าวไว้ในเอกสารประกอบของ Apple ไลบรารีแบบคงที่ได้รับการคอมไพล์ล่วงหน้าสำหรับสถาปัตยกรรม iOS ซึ่งทำให้เกิดข้อผิดพลาด Linker เมื่อสร้างโดยเทียบกับเป้าหมาย Mac

การเผยแพร่แอปของคุณไปยัง App Store

ก่อนเผยแพร่แอปไปยัง App Store คุณต้องเรียกใช้สคริปต์ Shell strip_unused_archs.sh เพื่อตัดสถาปัตยกรรมที่ไม่ได้ใช้ออกจาก App Bundle สคริปต์นี้อยู่ใน Cast SDK สำหรับ iOS