准备工作(iOS)

最近更新时间:2025-09-18 11:20:02

我的收藏

功能预览

TUILiveKit 是一个功能全面的直播组件,集成后可快速实现以下功能模块
主播准备页
主播开播页
直播列表
观众观看页













准备工作

开通服务

在使用 TUILiveKit 前,请先参考 开通服务,领取 TUILiveKit 体验版或者开通付费版。

环境要求

Xcode:需使用 Xcode 15 或更高版本。
iOS 系统:支持 iOS 13.0 或更高版本的设备。
CocoaPods 环境:已安装 CocoaPods 环境。如果您尚未安装,请参见 CocoaPods官网安装,或按以下步骤操作:
使用 gem 安装 CocoaPods:在终端中执行 sudo gem install cocoapods 命令进行安装。
提示:
sudo gem install cocoapods 安装过程中可能需要输入电脑密码,按提示输入管理员密码即可。

代码集成

步骤 1:通过 CocoaPods 导入组件

1. 添加 Pod 依赖:
若项目已有 Podfile 文件。
在您项目的 Podfile 文件中添加 pod 'TUILiveKit' 依赖。例如:
target 'YourProjectTarget' do
# 其他已有的 Pod 依赖...
# 添加 pod 'TUILiveKit' 依赖
pod 'TUILiveKit'

end
若项目没有 Podfile 文件。
在终端中通过 cd 命令切换到您的 .xcodeproj 目录下,然后执行 pod init 命令创建 Podfile 文件,创建完成后,在您的 Podfile 文件中添加 pod 'TUILiveKit' 依赖。例如:
// 如果您的项目目录是 /Users/yourusername/Projects/YourProject

// 1. cd 到您的.xcodeproj 工程目录下
cd /Users/yourusername/Projects/YourProject

// 2. 执行 pod init,此命令运行完后,会在您的工程目录下生成一个 Podfile 文件。
pod init

// 3. 在生成的 Podfile 文件中添加 pod 'TUILiveKit' 依赖
target 'YourProjectTarget' do
# 添加 pod 'TUILiveKit' 依赖
pod 'TUILiveKit'

end
2. 安装组件
在终端中 cdPodfile 文件所在的目录,然后执行以下命令安装组件。
pod install

步骤 2:工程配置

为了使用音视频功能,您的应用需要获取麦克风和摄像头的权限。请在应用的 Info.plist 文件中添加以下两项,并填写对应的使用说明,这些说明将在系统请求权限时向用户显示:
<key>NSCameraUsageDescription</key>
<string>TUILiveKit需要访问你的相机权限,开启后录制的视频才会有画面</string>
<key>NSMicrophoneUsageDescription</key>
<string>TUILiveKit需要访问您的麦克风权限,开启后录制的视频才会有声音</string>


完成登录

代码集成完成后,您需要完成登录,这是使用 TUILiveKit 的关键步骤,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请您耐心检查相关参数是否配置正确:
说明:
在示例代码中,登录操作是在 didFinishLaunchingWithOptions 方法内完成的。但在实际项目场景下,强烈推荐 您在完成自己的用户身份验证等相关登录操作后,再调用 TUILiveKit 的登录服务。这样可以避免因过早调用登录服务,导致业务逻辑混乱或数据不一致的问题,同时也能更好地适配您项目中现有的用户管理和权限控制体系。
Swift
Objective-C
//
// AppDelegate.swift
//

// 1. 导入 TUICore
import TUICore

// 2. 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐您在自己登录业务完成后再调用登录服务
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 3. 调用登录接口
TUILogin.login(1400000001, // 请替换为开通服务控制台的 SDKAppID
userID: "denny", // 请替换为您的 UserID
userSig: "xxxxxxxxxxx") { // 您可以在控制台中计算一个 UserSig 并填在这个位置
print("login success")
} fail: { (code, message) in
print("login failed, code: \\(code), error: \\(message ?? "nil")")
}
return true
}
//
// AppDelegate.m
//

// 1. 导入 TUICore
#import <TUICore/TUILogin.h>

// 2. 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐您在自己登录业务完成后再调用登录服务
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 3. 调用登录接口
[TUILogin login:1400000001 // 请替换为开通服务控制台的 SDKAppID
userID:@"denny" // 请替换为您的 UserID
userSig:@"xxxxxxxxxxx" // 您可以在控制台中计算一个 UserSig 并填在这个位置
succ:^{
NSLog(@"login success");
} fail:^(int code, NSString * _Nullable msg) {
NSLog(@"login failed, code: %d, error: %@", code, msg);
}];
return YES;
}
登录接口参数说明:
参数
类型
说明
SDKAppID
Int
控制台获取,国内站通常是以 140160 开头的 10 位整数。
userID
String
当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。为避免多端登录冲突,请勿使用 1123 等简单 ID
userSig
String
用于腾讯云鉴权的票据。请注意:
开发环境:您可以采用本地 GenerateTestUserSig.genTestSig 函数生成 userSig 或者 通过 UserSig 辅助工具 生成临时的 UserSig。
生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参考 服务端生成 UserSig
更多信息请参见 如何计算及使用 UserSig

登录异常状态处理【可选】

TUILogin 提供了登录状态回调机制,方便您处理可能出现的登录异常情况,主要包括 “被踢下线” 和 “签名过期” 这两种异常状态的回调:
被踢下线:用户在线情况下被踢,IM SDK 会通过 onKickedOffline 回调通知给您,此时可以在 UI 提示用户,并调用 TUILogin.login 重新登录。
签名过期:用户在线期间收到 onUserSigExpired 回调,说明您之前给该用户签发的 userSig 已经过期了,这个时候如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,并调用 TUILogin.login 续签登录态。
Swift
Objective-C
// YourLoginService 代表您负责登录的业务模块
class YourLoginService: NSObject {

// 监听登录状态回调
func addLoginListener() {
TUILogin.add(self)
}
// 取消监听登录状态回调
func removeLoginListener() {
TUILogin.remove(self)
}
}

// 实现登录回调 TUILoginListener
extension YourLoginService: TUILoginListener {

// 用户被踢下线回调
func onKickedOffline() {
// 您的业务代码:UI 交互提示用户,然后重新登录
}

// 用户签名过期回调
func onUserSigExpired() {
// 您的业务代码:如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,并调用 TUILogin.login 续签登录态。
}
}
@interface YourLoginService() <TUILoginListener>

// 监听登录状态回调
- (void)addLoginListener;

// 取消监听登录状态回调
- (void)removeLoginListener;

@end

@implementation YourLoginService

// 监听登录状态回调
- (void)addLoginListener {
[TUILogin add:self];
}

// 取消监听登录状态回调
- (void)removeLoginListener {
[TUILogin remove:self];
}

#pragma mark - TUILoginListener

// 用户被踢下线回调
- (void)onKickedOffline {
// 您的业务代码:UI 交互提示用户,然后重新登录
}

// 用户签名过期回调
- (void)onUserSigExpired {
// 您的业务代码:UI 交互提示用户,然后重新登录
}

@end

下一步

恭喜您,现在您已经成功集成了视频直播组件并完成了登录。接下来,您可以实现主播开播观众观看直播列表等功能,可参考下表:
功能
描述
集成指引
主播开播
主播开播全流程功能,包括开播前的准备和开播后的各种互动
观众观看
实现观众进入主播的直播间后观看直播,实现观众连麦 、直播间信息、在线观众、弹幕显示等功能
直播列表
展示直播列表界面和功能,包含直播列表,房间信息展示功能

常见问题

pod install 执行后本地安装找不到 TUILiveKit 最新版本?

如果无法安装 TUILiveKit 最新版本,请按以下步骤操作:
1. 在 Podfile 所在目录下删除 Podfile.lock Pods,您可以选择手动删除或终端执行以下命令
// cd 到 Podfile 所在目录下

rm -rf Pods/
rm Podfile.lock
2. 在 Podfile 所在目录下执行 pod install --repo-update
// cd 到 Podfile 所在目录下

pod install --repo-update

每次进房都需要调用登录吗?

不需要。通常您只需要完成一次 TUILogin.login 调用即可,我们建议您将 TUILogin.loginTUILogin.logout 与自己的登录业务关联。

Podfile 文件有没有示例配置可以参考?

您可以参考 GitHub TUILiveKit Example 工程 Podfile 示例文件。