source  'https://github.com/PlasoOpenPlatform/plaso-open-specs.git'
 
 target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.60.122'
    pod 'PlasoUpimeSdkModule', '~> 1.60.122'
    pod 'PlasoProgressHUD'
 endSDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment targetpodfile文件合适位置(通常是末尾处),加入以下代码后,重新执行pod installpost_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
    end
  end
endPrivacy - Bluetooth Always Usage Description                    "Your comment"
Privacy - Bluetooth Peripheral Usage Description                "Your comment"
Privacy - Microphone Usage Description                          "Your comment"
Privacy - Photo Library Additions Usage Description             "Your comment"
Privacy - Camera Usage Description                              "Your comment"
Privacy - Photo Library Usage Description                       "Your comment"
Privacy - Local Network Usage Description                       "Your comment"  <key>FLTEnableImpeller</key>
  <false />| 参数名 | 参数类型 | 是否必须 | 默认值 | 参数说明 | 
|---|---|---|---|---|
| openFilenMode | int | 否 | 1 | 文件显示模式:1.图片模式 2.窗口模式 | 
| supportCloudBox | boolean | 否 | true | 支持打开云端文件 | 
| supportLocalFile | boolean | 否 | true | 支持打开本地文件 | 
| enableVideoMark | boolean | 否 | true | 视频暂停标注 | 
| enableSEndMessage | boolean | 否 | true | 允许发送消息 | 
| configKey | string | 否 | "" | "white", "purplegreen", "black", "red", "orange", "yellow","green", "lightblue", "skyblue", "blue", "purple", "pink" | 
| teachToolTypes | boolean | 否 | true | 新教具:三角、矩形、椭圆、实线、虚线、正方形、圆形 | 
| enableInteractPPT | boolean | 否 | true | 可交互PPT | 
| useNewSmallboard | boolean | 否 | true | 新小黑板 | 
| toolBoxTypes | NS_ENUM | 否 | 0 | 提供随堂测、定时器、小黑板、红包雨、浏览器、抢答器、骰子 | 
| waterMark | string | 否 | "" | 水印 | 
| waterMarkSize | double | 否 | 0 | 水印文字大小 | 
| waterMarkOpacity | double | 否 | 0 | 水印文字透明度 (0-1.0) | 
| waterMarkDynamic | boolean | 否 | false | 水印是否动态 | 
| supportUndo | boolean | 否 | true | 支持撤销 | 
| redPacketLimit | int | 否 | 0 | 红包雨上限 | 
| endRemindTime | long | 否 | 0 | 终止时间 | 
| defaultPermission | int | 否 | - | 会议默认权限(0/1/2/4组合) | 
| supportSelect | boolean | 否 | true | 支持工具栏选择 | 
| supportHighlighter | boolean | 否 | false | 是否支持荧光笔 | 
| shouldForbiddenScreenShot | boolean | 否 | false | 是否防截屏 | 
| enableNewClassExam | int | 否 | 0 | 老版随堂测:0; 新版随堂测选择题:1; 新版随堂测填空题:2; 新版随堂测选择+填空:3  | 
| d_enableObjectEraser | int | 否 | 0 | 点擦: 0, 对象擦: 1(手写), 3(手写+文本框), 5(手写+图形), 7(手写+文本框+图形)  | 
| enableSaveBoard | boolean | 否 | false | 是否支持保存白板 | 
| chatAlertConfig | Int | 否 | 0 | 消息提醒控制 0:本地记录 1:开启 2:关闭; 默认0,仅对学生生效,老师不受此配置控制 | 
UpimeFile 对象UpimeFile 对象进行封装。UpimeFile 是一个核心的数据结构,用于向课堂中传递文件的相关信息。type: UpimeFileType 枚举,表示文件的类型(如 UpimeFileType_PPT, UpimeFileType_PDF 等)。title: 文件的显示标题。url: (适用于普通文件) 文件的直接访问 URL。info: (适用于预解析文件或需要动态获取URL的普通文件) 包含文件特定信息的数组。pages: (仅适用于 PDF 等多页文件) 文件的总页数。UpimeProtocol 中的回调方法向您的应用请求文件的可访问 URL。这确保 了文件访问的安全性和灵活性,例如处理有时效性的签名 URL。getExtFileName (用于普通文件)info 插入普通文件时,SDK 会回调此方法。您需要根据传入的 info 参数计算并返回文件的可访问 URL。func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getExtFileName info: [Any], result: @escaping (String) -> Void)getPreParseFileName (用于预解析文件)info) 和资源相对路径 (suffix) 计算并返回特定资源的带签名 URL。func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getPreParseFileName info: [Any], suffix: String, result: @escaping (String) -> Void)UpimeFile 对象并调用 liveVC?.insert(upimeFile) 方法,即可将文件插入到实时课堂中。UpimeFile 对象并将其插入课堂。getExtFileName 动态获取URLUpimeFile对象中,而是在SDK需要访问时通过代理回调动态获取URL时,可以使用此方式。UpimeProtocol 协议并设置 DelegateUIViewController 需要遵循 UpimeProtocol 协议,并将 liveVC 的 delegate 设置为自身。UpimeFile 对象UpimeFile 对象。这里的info通常包含用于定位和构建URL的自定义信息,例如主机、路径和文件名。getExtFileName 方法info参数,构造出文件的完整URL,并通过result闭包返回。getPreParseFileName Delegate 方法:这是 UpimeProtocol 协议中的一个关键方法,SDK会在需要访问预解析文件中的特定资源(如图片、HTML文件、JSON配置等)时回调此方法。您需要在此方法中向您的后端服务请求带签名的资源URL。UpimeProtocol 协议UIViewController 或其他负责管理课堂逻辑的类需要遵循 UpimeProtocol 协议。liveVC 的 DelegatePlasoStyleUpimeClient 实例并配置 liveVC 后,务必将其 delegate 属性设置为您实现 UpimeProtocol 的实例。UpimeFile 对象UpimeFile 对象。其 info 属性应包含 "parsed" 标识和文件的唯一 id。getPreParseFileName 方法info 和 suffix 参数,向您的后端服务发起请求,获取对应资源的带签名URL。suffix,并生成对应的带签名URL。SDK 不会直接处理签名逻辑。http://120.55.3.51:3000 仅为演示,请务必替换为您的实际后端服务地址。getPreParseFileName 方法中包含健壮的错误处理逻辑,例如网络请求失败、后端返回错误等情况。suffix 参数:SDK会根据需要访问的预解析文件中的具体资源,传入  不同的 suffix。例如,对于PPT,可能是 /index.html;对于PDF,可能是 /x.jpg (页面图片) 或 /info.json (配置信息)。您的后端服务需要能够处理这些不同的 suffix。info 参数:info 参数是一个 NSArray,其中 info[0] 通常是 "parsed" 字符串,info[1] 是一个字典,包含预解析文件的 id。请确保您的代码能够正确解析此结构。target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.53.310'
    pod 'PlasoUpimeSdkModule', '~> 1.53.310'
endstatic var appId: String = ""
static var appKey: String = ""| 属性名 | 是否必传 | 属性含义 | 
|---|---|---|
| supportDraft | false | 是否支持草稿 | 
| supportUndo | false | 是否支持撤销 (默认不支持) | 
| supportCloudBox | false | 是否支持显示资料中心 | 
| supportLocalFile | false | 是否支持插入本地文件 | 
| files | false | 是否允许插入文件, 0 不允许,1允许,默认为1 | 
| openFileMode | false | 插入文档时的文档展示模式 | 
| waterMark | false | 添加水印显示 | 
| waterMarkSize | false | 水印文字大小 | 
| wartermarkOpacity | false | 水印文字透明度 (0-1.0) | 
| waterMarkDynamic | false | 水印是否动态 | 
| enableInteractPPT | false | 是否启用交互ppt按钮的控制,默认为NO | 
| recordType | false | 微课类型,1 语音微课,2 视频微课 | 
| delegate | false | 录制的UpimeRecordDelegate 代理对象 | 
| configKey | false | 该key值用于记录颜色和宽度,不传时不记录 | 
| defaultRecordName | false | 课程名称 | 
| teachToolTypes | false | 教具选择 | 
| host | true | 环境信息 | 
| logDir | false | SDK 日志文件的存储目录 | 
| d_enableObjectEraser | int | 点擦: 0, 对象擦: 1(手写), 3(手写+文本框), 5(手写+图形), 7(手写+文本框+图形)  | 
| enableSaveBoard | boolean | 是否支持保存白板 | 
target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.60.122'
    pod 'PlasoUpimeSdkModule', '~> 1.60.122'
end
static var appId: String = ""
static var appKey: String = ""