安装与初始化
安装与初始化
OpenSDK 的安装分为两种方式:通过 CocoaPods 安装,和手动从官网下载压缩包安装。压缩包见 资源下载 的 iOS SDK 行。本 OpenSDK 只含真机调试的功能,不支持任何模拟器调试,支持 Xcode 9.0 以上。
步骤
按本页后续各节操作。
CocoaPods
在 Podfile 中添加 pod 'LCOpenSDK',然后执行 pod install。如果不能引入,可能需要更新本地仓库,执行 pod repo update。
Framework 路径:在 Build Setting → Search Paths → Framework Search Paths 添加:
$(PROJECT_DIR)/Pods/LCOpenSDK/Framework
头文件路径:在 Build Setting → Search Paths → Header Search Paths 添加:
$(PROJECT_DIR)/Pods/LCOpenSDK/Framework/LCOpenSDKDynamic.framework/Headers/LCOpenSDK
$(PROJECT_DIR)/Pods/LCOpenSDK/Framework/LCOpenSDKDynamic.framework/Headers/LCOpenNetSDK
Build Settings → Build Options → Enable Bitcode 设置为 NO。
压缩包安装
通过乐橙云开放平台官网下载 iOS 版本的 OpenSDK 压缩包,手动引入。引入时要注意 SDK 路径。以 Demo 为例,OpenSDK 位于工程目录下的 Depend 文件夹。
Framework 路径:在 Build Setting → Search Paths → Framework Search Paths 添加:
$(PROJECT_DIR)/Depend
头文件路径:在 Build Setting → Search Paths → Header Search Paths 添加:
$(PROJECT_DIR)/Depend/LCOpenSDKDynamic.framework/Headers
$(PROJECT_DIR)/Depend/LCOpenSDKDynamic.framework/Headers/LCOpenSDK
$(PROJECT_DIR)/Depend/LCOpenSDKDynamic.framework/Headers/LCOpenNetSDK
Build Phases → Embed Frameworks 添加 LCOpenSDKDynamic.framework,Destinations 选择 Frameworks。
$(PROJECT_DIR) 为 Demo 工程所在目录。按要求添加 LCOpenSDKDemo 和 Depend 文件夹(对应 iOS_demo 和 iOS_sdk 文件夹)。若 Build Phases → Embed Frameworks 不存在,选择左上角加号,然后选择 New Copy Files Phase,最后双击修改名称为 Embed Frameworks。
在 TARGETS → Build Phases → Link Binary With Libraries 下添加:
- CoreAudio.framework
- MediaPlayer.framework
- AudioToolbox.framework
- VideoToolbox.framework
- OpenGLES.framework
- MediaAccessibility.framework
- CoreVideo.framework
- AVFoundation.framework
- CoreMedia.framework
- libz.tbd(libz.dylib)
权限
SDK 使用需配置系统权限:
- 相册权限:
NSPhotoLibraryUsageDescription - 照片存储权限:
NSPhotoLibraryAddUsageDescription - 麦克风权限:
NSMicrophoneUsageDescription - 相机权限:
NSCameraUsageDescription - 本地网络权限:
NSLocalNetworkUsageDescription - 地理位置权限:
NSLocationUsageDescription
设备配网另需组播权限,需从苹果开发者中心申请。
初始化
使用 OpenSDK 相关功能前需要先初始化。初始化涉及开发者用户授权 token 和平台地址,主要依赖 LCOpenSDK_Api。
/** 初始化平台信息 */
LCOpenSDK_ApiParam * apiParam = [[LCOpenSDK_ApiParam alloc] init];
/** 1. 设置协议 */
apiParam.procotol = PROCOTOL_TYPE_HTTPS;
/** 2. 设置乐橙云平台服务地址 */
apiParam.addr = @"openapi.lechange.cn";
/** 3. 设置服务端口 */
apiParam.port = 443;
/** 4. accessToken:由开发者服务端调用开放平台换取后传入 App(客户端勿持有 AppSecret) */
apiParam.token = @"********";
/** 5. 调用SDK接口进行初始化平台信息 */
LCOpenSDK_Api* m_hc = [[LCOpenSDK_Api shareMyInstance] initOpenApi:apiParam];
传入有效 token 时,initOpenApi: 可能同步拉取服务配置(头文件注释最长约 10s),勿在主线程调用;请在后台队列完成初始化后再进入预览/对讲等流程。
accessToken 须在开发者服务端用 AppId/AppSecret 调用开放平台换取后下发给客户端;禁止在 App 内直连 token 接口或写入 AppSecret。接口说明:获取管理员 token、获取子账号 Token。约束与 示例工程、移动应用开发 一致。
日志级别
OpenSDK 提供日志打印类 LCOpenSDK_Log。默认等级为 LogLevelTypeFatal。
LCOpenSDK_LogInfo *info = [LCOpenSDK_LogInfo new];
info.levelType = LogLevelTypeDebug;
[[LCOpenSDK_Log shareInstance] setLogInfo:info];
LogLevelType 参数说明:
LogLevelTypeFatal = 1,重大错误LogLevelTypeError,错误信息LogLevelTypeWarning,警告信息LogLevelTypeInfo,主要用于生产环境中输出程序运行的一些重要信息LogLevelTypeDebug,运行调试信息
排查 SDK 内部问题时,可以调整日志级别完成问题复现与日志抓取。