iOS 接入说明文档
接入临境直播观看 SDK 首先遵循以下步骤:
- 配置 SDK 集成环境
- 按照以下接入文档集成代码
SDK 集成环境配置
开发与运行环境
- Xcode 13.3.1
- iOS 8.0 及以上版本
Cocoapods 快速集成
暂不支持
手动集成
- 将YXTLivePullComponent.framework集成到工程中

- 部分资源需要从根目录访问,将另外携带的资源文件放入主工程

声明SDK需要的权限
info.plist 设置权限:
关闭bitcode
将YXTLivePullComponent不支持bitcode,需要将Enable Bitcode关闭
解决打包失败
Swift工程在打包时如果某个framework含有模拟器架构就会出现冲突出现IPA processing failed错误,解决方法是在打包时将YXTLivePullComponent中的可执行文件的模拟器架构删除;
- 永久删除模拟器架构
- 添加脚本,在打包时将自动移除模拟器架构,但不影响YXTLivePullComponent本身
脚本内容:
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORKdoFRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"EXTRACTED_ARCHS=()for ARCH in $ARCHSdoecho "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")doneecho "Merging extracted architectures: ${ARCHS}"lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"rm "${EXTRACTED_ARCHS[@]}"echo "Replacing original executable with thinned version"rm "$FRAMEWORK_EXECUTABLE_PATH"mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"done
SDK集成配置
1、环境配置
#import "YXTLivePullComponent/YXTLivePullComponent.h"/**环境配置@param environment 环境配置(0:测试环境;1:正式环境)*/[[YXTLivePullSDK getInstance] configLivePullWithApiEnvironment:LPullEnvironmentDevelopment];[YXTLivePullSDK getInstance].isUsedOutside = YES;[YXTLiveBaseSDK getInstance].isUsedOutside = YES;
2、跳转直播播放页面
#import "YXTLivePullComponent/YXTLivePullComponent.h"NSMutableDictionary *params = [NSMutableDictionary dictionary];[params setValue:@"" forKey:kLivePullSDKeyRoomCode];//直播室roomCode 必传[params setValue:@"" forKey:kLivePullSDKeyUserId];//用户userId 必传[params setValue:@"" forKey:kLivePullSDKeyUserName];//用户昵称 必传[params setValue:@"" forKey:kLivePullSDKeyAvatar];//用户头像[params setValue:@"" forKey:kLivePullSDKeyPassword];//观看密码[params setValue:@"" forKey:kLivePullSDKeyLoginName];//产线用户登陆名称[params setValue:@"" forKey:kLivePullSDKeyUserPoint];//用户积分[params setValue:@YES forKey:kLivePullSDKeyCannotEditUserInfo];//默认传Yes[[YXTLivePullSDK getInstance] loginChatRoomWithParam:params inNav:当前的navigationController];
3、绑定微信功能接入
设置微信绑定功能需要添加以下操作:
注:若不需要微信绑定功能,不需要接入改板块内容。
1. 在微信开放平台申请相应 appId;
2. 在 AppDelegate 中初始化微信
#import "WXApi.h"在 appdelegate 文件下 didFinishLaunchingWithOptions 方法里添加[WXApi registerApp:@"微信key"];[[YXTLivePullSDK getInstance]setIsNeedBindUserInfo:YES];//打开微信绑定
3. 在 info—>URL Types 里添加微信跳转配置
4、支持后台播放功能接入
设置后台播放功能需要添加以下操作:

常见问题
1、PC 推流时,直播界面未横竖屏切换失效或项目横竖屏不受控制问题
无法横竖屏切换
解答:要求项目必须默认支持横竖屏切换默认支持横竖屏切换,固定页面关闭横竖屏切换失败
解答:需要自定义 UINavigationController
并实现 shouldAutorotate 方法-(BOOL)shouldAutorotate{return self.topViewController.shouldAutorotate;}
横屏状态打开 App,启动页变成横屏
解答:在 AppDelegate 里- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法里设置竖屏显示;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];return YES;}
2、开始观看直播时,无法正常进入
- 控制台log提示“直播参数缺失:kLivePullSDKeyRoomCode value 不存在”
解答:kLivePullSDKeyRoomCode 值为空,此参数必传 - 控制台log提示“直播参数缺失:kLivePullSDKeyUserName value 不存在”
解答:kLivePullSDKeyUserName 值为空,此参数必传
关于作者
江苏云学堂网络科技有限公司开发人员,如有问题请发送邮件至 yll@yxt.com。