You need to enable JavaScript to run this app.
导航
iOS
最近更新时间:2025.11.19 17:03:47首次发布时间:2022.01.17 10:33:21
复制全文
我的收藏
有用
有用
无用
无用

本章节介绍 iOS 推/拉流 SDK 的支持系统、开发环境和集成方式。根据如下步骤进行操作,即可完成 iOS 推/拉流 SDK 集成工作。

说明

本文内容适用于 1.40.2 及以上版本。如果您已经集成了旧版本的 SDK,可以参考 iOS 动态库升级指南 进行动态库版本升级,或由静态库切换到动态库。

开发环境要求

  • iOS 11.0 以上的 iPhone 或者 iPad 真机。
  • Xcode 14.0 以上版本。

前提条件

获取 License 文件。

集成 SDK

您可以通过以下方式集成直播 SDK。

  • 在线集成:使用 CocoaPods 或 SPM 自动加载。其中,CocoaPods 支持动态库和静态库 2 种 SDK 集成方法,SPM 仅支持动态库 SDK 集成方法。
  • 离线集成:您可通过提交工单联系技术支持,了解离线集成的具体步骤。

本文介绍在线集成的具体步骤。

return (<Tabs>
<Tabs.TabPane title="使用 CocoaPods 集成 SDK" key="lVm9MPmQRj"><RenderMd content={`<span id="84aa0522"></span>
### 方法一:动态库集成(推荐)
使用 CocoaPods,在工程的 **Podfile** 文件中添加依赖,并执行 **pod install**,自动下载更新推/拉流 SDK。
<span id="9f6a5016"></span>
#### Step 1:安装 CocoaPods
在 Mac 中安装 Ruby 环境,在终端窗口中输入安装 CocoaPods 命令。
\`\`\`Ruby
sudo gem install cocoapods
\`\`\`

<span id="5c61ec39"></span>
#### Step 2:创建 Podfile 文件
在您的工程目录中执行如下命令,创建 Podfile 文件。
\`\`\`Ruby
pod init
\`\`\`

<span id="582c5704"></span>
#### Step 3:添加依赖
**推流 SDK**
在您的 `Podfile` 文件中添加依赖。
\`\`\`Ruby
source 'https://github.com/volcengine/volcengine-specs.git'
pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePush']
\`\`\`

:::tip
将 \`x.x.x.x-premium\` 替换为 SDK 的指定版本。推荐使用最新版本。版本号详见 [iOS 推拉流 SDK 发布历史](https://www.volcengine.com/docs/6469/1799872)。
:::
其中:

* 如果您需要使用 RTMPS 协议推流,则将 \`'LivePush'\` 替换为 \`'LivePush', 'LivePush-RTMPS'\`,即 \`pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePush', 'LivePush-RTMPS']\`
* 如果您需要使用观众连麦和主播 PK 等互动直播功能,则将 \`'LivePush'\` 替换为 \`'LivePush', 'RTCSDK'\`,即 \`pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePush', 'RTCSDK']\`

**拉流 SDK**
在您的 `Podfile` 文件中添加依赖。
\`\`\`Ruby
source 'https://github.com/volcengine/volcengine-specs.git'
pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePull']
\`\`\`

:::tip
将 \`x.x.x.x-premium\` 替换为 SDK 的指定版本。推荐使用最新版本。版本号详见 [iOS 推拉流 SDK 发布历史](https://www.volcengine.com/docs/6469/1799872)。
:::
其中:

* 如果您需要使用 RTM 协议拉流,则将 \`'LivePull'\` 替换为 \`'LivePull-RTS'\`,即 \`pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePull-RTS']\`
* 如果您需要使用观众连麦等互动直播功能,则将 \`'LivePull'\` 替换为 \`'LivePull', 'RTCSDK'\`,即 \`pod 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePull', 'RTCSDK']\`

<span id="ef145ee9"></span>
#### Step 4:安装 SDK
在终端窗口中输入如下命令,更新本地库文件,并安装 SDK。
\`\`\`Ruby
pod install
\`\`\`

<span id="d068ef4c"></span>
### 方法二:静态库集成
静态库的集成步骤与动态库相同。您只需将集成步骤中的 Pod 名称从 \`TTSDKFramework\` 修改为 \`TTSDK\`,即可实现静态库的集成。
**推流 SDK**
\`\`\`Ruby
source 'https://github.com/volcengine/volcengine-specs.git'
pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePush']
\`\`\`

**拉流 SDK**
\`\`\`Ruby
source 'https://github.com/volcengine/volcengine-specs.git'
pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePull']
\`\`\`

:::tip
将 \`x.x.x.x-premium\` 替换为 SDK 的指定版本。推荐使用最新版本。版本号详见 [iOS 推拉流 SDK 发布历史](https://www.volcengine.com/docs/6469/1799872)。
:::
`}></RenderMd></Tabs.TabPane>
<Tabs.TabPane title="使用 SPM 集成 SDK" key="fmvqSDIxTD"><RenderMd content={`1. 在您的 Xcode 工程中,单击 **Package Dependencies** 页签下的 **+** 按钮。
   ![Image](https://portal.volccdn.com/obj/volcfe/cloud-universal-doc/upload_86feb6bc4613f7b0f459d2b19d3eb6ee.png =2516x)
2. 在弹出的对话框右上角,输入 \`git@github.com:volcengine/TTSDK_SPM.git\`。然后输入要集成的 SDK 版本号,并单击 **Add Package**,添加 TTSDK 依赖。
   ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/63a9fdf3bcef442a813c40c92cc3b9e1~tplv-goo7wpa0wc-image.image =1872x)
   :::tip
   * 推荐选择 **Exact Version** 作为 **Dependency Rule**。
   * 仅指定 SDK 版本支持使用 SPM 集成,详见 [iOS 推拉流 SDK 发布历史](https://www.volcengine.com/docs/6469/1799872)。
   :::
3. 按需选择依赖的组件,单击 **Add Package** 将组件添加到您的 Target 中。
   ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/14829da3f4eb4661b3a3773bdb91699e~tplv-goo7wpa0wc-image.image =594x)
   视频直播 SDK 可选择以下组件:
   * \`TTSDK_LivePull\`:FLV、HLS、RTMP 协议直播拉流
   * \`TTSDK_LivePull-RTS\`:FLV、HLS、RTMP、RTM 协议直播拉流
   * \`TTSDK_LivePush\`:RTMP 协议直播推流
   * \`TTSDK_ScreenCapture\`:直播录屏推流
`}></RenderMd></Tabs.TabPane></Tabs>);

配置权限

使用 SDK 的音视频功能,需要授权麦克风和摄像头的权限。在 info.plist 中配置开启摄像头和麦克风权限。

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
- (void)requestAuthorization {
  AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
  if (authStatus != AVAuthorizationStatusAuthorized) {
    [[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
      if (granted) {
        NSLog(@"授权成功!");
      }
      else {
        NSLog(@"授权失败!");
      }
    }];
  }
}

添加 License

拷贝 License 文件到工程目录下。并记住 License 文件的存放路径。

注意

License 文件已绑定了 BundleID 和 AppID。如果 License 文件与工程的 BundleID 或 AppID 不一致,会导致鉴权失败。