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

macOS Objective-C项目集成Linphone SDK无法定位vcard_grammar怎么解决?

Linphone macOS SDK集成vcard_grammar找不到问题解决方案

该报错根因为Linphone运行时需要读取配套的资源文件,仅导入framework未打包资源到App包会导致路径查找失败,可按以下步骤修复:

  • 解压下载的Linphone SDK压缩包,找到包内的share目录,vcard_grammar等资源文件都存储在该目录下的对应子文件夹中。
  • 将完整的share目录拖入Xcode项目,弹窗配置导入选项时:勾选「Copy items if needed」、选择你的主App target,必须选择「Create folder references」而非「Create groups」,否则share的层级结构会被展平,SDK依旧无法定位资源文件。
  • 进入项目target的「Build Phases」页,检查「Copy Bundle Resources」列表中已包含导入的share文件夹,确认资源会被打包进App的资源目录。
  • 在创建Core前先为LinphoneFactory指定资源根路径,修改你的代码如下:
LinphoneFactory *factory = linphone_factory_get();
// 配置资源根目录
NSString *shareResourcePath = [[NSBundle mainBundle] pathForResource:@"share" ofType:nil];
linphone_factory_set_data_dir(factory, shareResourcePath.UTF8String);

// 原有逻辑保持不变
NSString *linphonecfg = [LinphoneManager bundleFile:@"linphonerc"];
NSString *fileStr = [NSString stringWithContentsOfFile:linphonecfg encoding:NSUTF8StringEncoding error:nil];
configDb = linphone_config_new_from_buffer(fileStr.UTF8String);
theLinphoneCore = linphone_factory_create_core_with_config_3(factory, configDb, NULL);

修改完成后重新编译运行即可解决报错,若后续出现其他资源找不到的同类错误,确认share目录的文件完整性和导入配置即可。

内容的提问来源于stack exchange,提问作者Luís Campos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:24:03