问题出现
某次pod install 就突然出现这个错误,试了好多方法无法解决,cocoapods的github上issue里面也有人提到这个问题,但是没有啥解决方案,经过我的探索,发现问题所在,废话不多说,看看怎么解决。
无论是pod install 还是pod update,均提示如上错误,试过重装cocoapods、重新clone工程等方法都无效。
如何解决
github、stackoverflow等全网都已经搜遍了,没有解决方案,只能靠自己了。这时候唯一能给我提供帮助的就只有下面的ruby调用栈。调用栈显示最终是由于某个json文件为空或者格式错误才导致了失败。
于是为了找到这个json文件,我在调用栈的每一层入口函数都打印了log,最终确认了是/gems/gem-analytics-0.0.1/lib/gem-analytics/perf_channel_client.rb文件的def self.log(log_hash, custom_report_options = {})处为问题起点。这里跟json相关处理在这:
所以打印出failed_log_paths就能找到错误的json文件,打印之后文件目录如下:
打开该文件,确实是空的,所以才造成了json parse失败,这个文件是在系统的tmp目录下,索性我就直接把logs文件删除。再次pod install,成功!!!!。
总结
遇到棘手的问题还是得靠自己去寻找有效解决方案,另外需要多多关注报错信息,寻找有用的信息帮助我们去解决问题。
当执行pod install或pod update时遇到JSON::ParserError,尝试重装cocoapods、重新clone工程无效。通过分析ruby调用栈发现/gems/gem-analytics-0.0.1/lib/gem-analytics/perf_channel_client.rb文件中的json处理存在问题。通过打印log定位到空的json文件,删除该文件后,问题解决。关键在于深入分析错误信息并采取针对性的解决步骤。
1万+

被折叠的 条评论
为什么被折叠?



