You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift开发Vidyo iOS应用崩溃,附调试日志求助

排查Vidyo iOS应用崩溃问题

从你提供的调试日志来看,这次崩溃主要由两个关联的问题引发,我来帮你逐一分析并给出排查方向:

1. 文件访问权限错误(核心触发点)

日志里的关键错误:

ERROR: LmiFile: [System thread]: /tmp/SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/Os/LmiFile.c:132: LmiFileOpen_: Error opening file v\217\206: Operation not permitted

这里的v\217\206是乱码的文件名,说明Vidyo SDK尝试打开某个文件时被iOS沙箱机制阻止了,可能的原因包括:

  • 路径非法:SDK尝试访问了iOS应用沙箱之外的路径(iOS应用只能读写自己容器内的Documents、Caches、tmp目录),或者你传入给SDK的路径配置有误。
  • 权限缺失:如果SDK需要访问系统资源(比如相册、相机导出的文件),你的Info.plist里可能缺少对应的权限描述字段(比如NSPhotoLibraryUsageDescription、NSDocumentFolderUsageDescription),导致系统拒绝访问。
  • 路径配置错误:有些Vidyo SDK需要指定日志、缓存的存储目录,确保你是通过NSSearchPathForDirectoriesInDomains这类系统API获取的合法沙箱路径,而非硬编码路径。

2. 引用计数断言失败(连锁反应)

第二个错误:

Assertion failed: (newVal >= 0), function LmiSharedPtrRefCountDecUseCount, file /tmp/SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/VidyoClient/../../....

这个断言失败是因为内存引用计数被过度释放(变成负数),本质是文件打开失败后,SDK内部的资源初始化流程没有正确处理错误,后续代码仍尝试操作未初始化的对象,最终触发内存管理崩溃。

具体排查步骤

  • 先解决文件权限问题:
    1. 确认你给Vidyo SDK配置的存储路径是合法的沙箱路径,比如:
      let documentsDir = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
      // 将这个路径传给SDK的配置参数
      
    2. 检查Info.plist,根据SDK的功能需求添加对应的权限描述(比如如果涉及视频录制,需要NSCameraUsageDescription和NSMicrophoneUsageDescription)。
    3. 启用SDK的详细日志,获取更多关于目标文件的上下文信息,定位具体是哪个文件无法访问。
  • 修复连锁的内存问题:
    1. 调整SDK调用顺序:确保先完成路径配置、权限申请,再初始化SDK的核心服务,避免在资源未就绪时调用后续API。
    2. 捕获SDK返回的错误:在调用文件相关的SDK方法后,检查返回值是否成功,失败时终止后续依赖流程,不要继续操作未初始化的对象。
  • 版本适配与升级:
    1. 测试不同iOS版本的表现,iOS 14+对文件权限有更严格的限制,可能需要做针对性适配。
    2. 检查你使用的TRINITY_4_1_20_3版本SDK是否有已知的沙箱路径bug,尝试升级到最新版本的Vidyo SDK看看是否解决问题。

内容的提问来源于stack exchange,提问作者Saleel Karkhanis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:43:24