使用 Cast 应用框架 (CAF) 开发 iOS 版应用的设置

Cast 框架支持 iOS 14 及更高版本,并且提供静态和动态框架。

如需了解所有类和方法的说明,请参阅 Google Cast iOS API 参考文档

Xcode 设置

iOS 14

  1. 将 Cast iOS SDK 4.8.3 添加到您的项目

    如果使用 CocoaPods,请使用 pod update 将 4.8.3 SDK 添加到您的项目中。

    否则,请 手动拉取 SDK

  2. NSBonjourServices 添加到 Info.plist

    Info.plist 中指定 NSBonjourServices,以允许在 iOS 14 上成功进行本地网络发现。

    您需要将 _googlecast._tcp_<your-app-id>._googlecast._tcp 都添加为服务,以便设备发现功能正常运行。

    appID 是您的 receiverID,与 GCKDiscoveryCriteria 中定义的 ID 相同。

    更新以下示例 NSBonjourServices 定义,并将“ABCD1234”替换为您的应用 ID。

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. NSLocalNetworkUsageDescription 添加到 Info.plist

    我们强烈建议您在应用的 Info.plist 文件中为 NSLocalNetworkUsageDescription 添加应用专用权限字符串,以自定义“本地网络”提示中显示的消息,例如描述 Cast 发现功能和其他发现服务(例如 DIAL)。

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

    此消息将显示在 iOS 本地网络访问权限对话框中,如模拟内容所示。

    投放本地网络访问权限对话框图片
  4. 将应用重新发布到 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

对于您的项目,您应为 pod 指定一个范围,以防止意外的破坏性更改,如 podfile 指南中所详述。

在此代码段中,允许使用版本 4.8.3 及不高于下一个主要版本 (major.minor.patch) 的版本:

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

例如,“>= 1.6.7”将涵盖 1.6.7 及更高版本(但不包括 2.0.0 版本)。

手动设置

以下说明介绍了如何在不使用 CocoaPods 的情况下将 Cast iOS SDK 添加到您的项目中:

下载内容

下载下面的相应库后,请按照设置步骤将框架添加到您的项目中。

Cast iOS Sender SDK 4.8.3 库:

静态 动态

设置步骤

如需安装该库,请执行以下操作:

  1. 下载并解压缩适用于您的项目的 SDK。
  2. 设置动态 GoogleCastSDK 库:
  3. 将解压缩的 .xcframework 拖动到 Xcode 项目导航器中的主项目中(不要拖动到 Pods 项目,如果有)。 选中“Copy all items if needed”(根据需要复制所有内容),然后将其添加到所有目标。
  4. 在 Xcode 目标的 General 标签页下,为 GoogleCast.xcframework 选择 Embed and Sign

如果您要设置静态库,除了上述步骤之外,还需要执行以下步骤:

  1. 设置最低版本为 v3.13 的 Protobuf 库。
    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 GitHub 代码库中的说明添加 Protobuf 库 v3.13 或更高版本。
  2. 在 Xcode 项目中,依次前往 Build Settings > Other Linker Flags,然后将标志 -ObjC -lc++ 添加到该位置。
  3. 在解压缩的目录中找到“Resources”文件夹,然后将 GoogleCastCoreResources.bundleGoogleCastUIResources.bundleMaterialDialogs.bundle 拖动到项目中您之前添加的 GoogleCast.xcframework 旁边。选中“Copy all items if needed”(根据需要复制所有项),然后将其添加到所有目标。

Mac Catalyst 设置

对于支持 Mac Catalyst 的应用,请使用 Cast SDK 的动态库。 按照手动设置流程将框架添加到您的项目。然后,按照 Apple 文档中所述,从 Mac 目标中有条件地排除 Cast SDK。静态库针对 iOS 架构进行了预编译,这会导致针对 Mac 目标进行构建时出现链接器错误。