Xcode运行iOS应用时频繁弹出Flipper证书提供失败报错如何修复
Flipper循环打印证书连接错误修复方案
错误表现
Xcode运行iOS应用时控制台每秒重复输出以下日志,应用本身功能无异常、运行流畅:
flipper: Desktop failed to provide certificates. Error from flipper desktop:
rsocket::StreamInterruptedException: connection error
问题根因
该报错来自集成在App Debug包中的Flipper调试SDK:SDK启动后会持续轮询本地的Flipper桌面调试端,尝试完成双向证书认证建立调试连接,当连接失败时就会打印错误并重试。因为Flipper本身是调试辅助工具,连接失败不会阻塞任何业务逻辑,所以不会影响App正常运行。
可行修复方案
按实际使用场景选择对应方案即可:
- 不需要使用Flipper调试的场景
直接修改iOS端Flipper初始化逻辑,检测不到本地Flipper服务时跳过初始化,从根源停止轮询重试。打开iOS项目下的AppDelegate.mm(或对应初始化Flipper的桥接文件),找到Flipper初始化代码段,增加本地60000端口(Flipper默认服务端口)的监听判断,无服务运行时直接跳过Flipper初始化流程,改完重新编译就不会再刷日志。 - 需要正常使用Flipper调试功能的场景
- 完全退出本地运行的Flipper桌面端,删除本地Flipper缓存目录下的
certs证书文件夹,重启Flipper桌面端等待服务完全加载后,重新编译运行App即可。多数情况是本地证书缓存损坏导致认证失败。 - 若上述操作无效,对齐项目中集成的Flipper SDK版本和本地安装的Flipper桌面端大版本,版本不匹配会导致RSocket协议层认证不兼容,触发流中断报错,版本对齐后重启两端即可正常连接。
- 完全退出本地运行的Flipper桌面端,删除本地Flipper缓存目录下的
- 临时屏蔽日志的快速方案
不需要修改代码的话,直接在Xcode控制台的过滤规则中添加关键字flipper: Desktop failed to provide certificates,过滤掉该条重复日志即可,不影响其他调试日志的正常查看。
内容的提问来源于stack exchange,提问作者Arun Girivasan
相关产品推荐
相关产品推荐

