Mac OBS 浏览器插件升级obs-browser

在升级obs-browser,需要把obs-browser-page打包进来,但在本地上跑是正常,到其他机子上运行,加载浏览器插件时就crash。分析步骤:

obs-browser 依赖于CEF,在确定了CEF已经一致的,排出了CEF 里“Chromium Embedded Framework.framework”库的问题

通过加log代码,确定了代码在CefInitialize(args, settings, app, nullptr)执行后crash(文件:obs-browser-plugin.cpp),从而确定在启动obs-browser-page时出错了。

因为obs-browser-page不依赖libobs,所以写的日志代码无法在日志文件里输出查看。原来我们打开app是双击或者open XX.app,

这个方式下代码了的printf的输出是无法查看的,从而了新的思路,通过直接在终端运行 XX.app/Contents/MacOS/xx ,此时日志包括printf输出都能看,在obs-browser-page项目中添加日志代码,确定代码int ret = CefExecuteProcess(mainArgs, mainApp.get(), NULL);执行crash,且发现crash之前有个错误提示:

[0326/161058.515684:ERROR:icu_util.cc(136)] icudtl.dat not found in bundle
[0326/161058.515762:ERROR:icu_util.cc(172)] Invalid file descriptor to ICU data received.

通过google相关的资料,大体的意思是需要设置framework_dir_path的路径,从而返回源码查看,发现这个参数是通过一个宏赋值的,CefString(&settings.framework_dir_path) = CEF_LIBRARY;(文件:obs-browser-plugin.cpp)

返回到本机上将framework_dir_path打印输出(本机可以正常运行),发现framework_dir_path的值是本地CEF的路径。

CEF_LIBRARY=/Users/XX/cef/Release/Chromium Embedded Framework.framework

为了再次确定这个问题,我在其他机子上构建的这个目录,然后程序能正常的加载浏览器插件并显示。

找了问题的原因,接下来就可以修改这个framework_dir_path变量值,指定到我们包里的Chromium Embedded Framework.framework的路径,即可完成打包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值