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

iOS16+iPhone11ProMax下Linphone SDK5.2beta82启动崩溃(缺失libjsoncpp库)

iOS 16设备集成Linphone SDK 5.2 Beta 82启动崩溃:libjsoncpp.24.dylib加载失败

我将Linphone SDK 5.2 Beta 82编译后集成到应用中,在iOS 16系统的iPhone 11 Pro Max上启动时直接崩溃,核心崩溃栈信息如下:

dyld[591]: Library not loaded: @rpath/libjsoncpp.24.dylib
  Referenced from: <37C02679-31AD-371A-8BBD-1EB40F928F79> /private/var/containers/Bundle/Application/38841998-D49D-441F-BE5A-DFB40043F67C/personal_chat.app/Frameworks/linphone.framework/linphone
  Reason: tried: '/usr/lib/system/introspection/libjsoncpp.24.dylib' (errno=2, not in dyld cache), '/private/var/containers/Bundle/Application/38841998-D49D-441F-BE5A-DFB40043F67C/Frameworks/libjsoncpp.24.dylib' (errno=2), ...(省略重复路径)

此前集成Linphone SDK 5.2 Beta 10时,iOS 16设备上运行正常(仅存在音频无声音问题),升级到Beta 82后出现该崩溃。


解决步骤

1. 检查SDK编译产物是否包含依赖库

打开编译生成的Linphone SDK包,确认Frameworks目录下存在libjsoncpp.24.dylib文件。如果缺失,说明编译过程中jsoncpp模块未正确构建,需重新编译SDK,确保编译脚本包含jsoncpp的编译逻辑。

2. 配置Xcode项目依赖

  • 将libjsoncpp.24.dylib添加到Xcode项目的Frameworks, Libraries, and Embedded Content列表中,设置Embed选项为Embed & Sign。
  • 检查项目Build Settings -> Runpath Search Paths,确保包含@executable_path/Frameworks和@loader_path/Frameworks,保证dyld能正确定位库文件。

3. 验证linphone.framework的依赖路径

使用otool命令检查linphone.framework的依赖配置:

otool -L /path/to/linphone.framework/linphone

确认libjsoncpp.24.dylib的引用路径为@rpath/libjsoncpp.24.dylib。如果路径错误,需重新编译SDK并调整依赖的rpath设置。

4. 清理缓存并重新构建

  • 执行Product -> Clean Build Folder(快捷键Cmd+Shift+K)清理Xcode构建缓存。
  • 删除~/Library/Developer/Xcode/DerivedData下当前项目的缓存文件夹。
  • 重新安装应用到测试设备,避免旧缓存干扰。

5. 检查SDK编译的iOS版本兼容性

确认编译Linphone SDK时,目标iOS版本设置为iOS 16或更低(匹配测试设备系统版本),避免因SDK最低支持版本高于设备系统导致加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:40:32