การตั้งค่าสําหรับการพัฒนาด้วยเฟรมเวิร์กแอปพลิเคชันแคสต์ (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 คือ ReceiverID ซึ่งก็คือรหัสเดียวกันกับ 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 มีข้อกําหนดการตั้งค่าเหมือนกับ เฟรมเวิร์กแบบเดิม

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

ส่งไลบรารี iOS Sender SDK 4.8.0 ด้วยคําสั่งต่อไปนี้

คงที่ด้วยบลูทูธ คงที่โดยไม่ต้องใช้บลูทูธ

ไดนามิกพร้อมบลูทูธ ไดนามิกแบบไม่มีบลูทูธ

XCFramework

Cast iOS SDK รองรับ XCFrameworks ซึ่งช่วยให้พัฒนาซอฟต์แวร์บนคอมพิวเตอร์ Mac ได้ด้วย Apple silicon รวมถึงการแก้ไขข้อบกพร่องโดยใช้เครื่องจําลอง iOS

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

XCFramework แบบคงที่พร้อมบลูทูธ Static XCFramework ไม่มีบลูทูธ

XCFramework แบบไดนามิกพร้อมบลูทูธ Dynamic XCFramework with Bluetooth

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

วิธีติดตั้งไลบรารี static รายการใดรายการหนึ่ง

  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 repo
  3. ลาก .framework หรือ .xcframework ที่แตกแล้วลงใน โปรเจ็กต์หลักในการนําทางโปรเจ็กต์ Xcode (ไม่ใช่โปรเจ็กต์พ็อด หากมี) เลือก "คัดลอกรายการทั้งหมดหากจําเป็น" และเพิ่มไปยังเป้าหมายทั้งหมด
  4. ในโปรเจ็กต์ Xcode ให้เพิ่มแฟล็ก -ObjC -lc++ ไปยัง Build Settings > Other Linker Flags
  5. คลิกขวาที่ GoogleCast.framework หรือ GoogleCast.xcframework ในโปรเจ็กต์ แล้วเลือก "แสดงในตัวค้นหา"
  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 คุณจําเป็นต้องเรียกใช้สคริปต์เชลล์ strip_unused_archs.sh เพื่อตัดสถาปัตยกรรมที่ไม่ได้ใช้ออกจาก App Bundle สคริปต์นี้อยู่ใน Cast SDK สําหรับ iOS