Podfile post-install钩子处理报错 无法在iOS模拟器运行Flutter项目
问题根因
报错核心是undefined method 'each_child',Dir.each_child为Ruby 2.6及以上版本才支持的内置方法,你当前环境使用的Ruby版本为2.5.5,版本低于要求,导致Flutter的podhelper.rb构建脚本执行失败。
解决步骤
- 升级Ruby版本,推荐安装2.7.x或3.x稳定版,如果你使用rvm管理Ruby版本,执行如下命令:
rvm install 2.7.6 rvm use 2.7.6 --default - 验证Ruby版本是否升级成功,执行命令
ruby -v,确认输出版本号高于2.6.0即可。 - 进入项目
ios目录,清理旧的Pod缓存:rm -rf Pods rm Podfile.lock pod deintegrate pod setup - 重新安装Pod依赖:
pod install,安装完成后重新运行Flutter项目即可正常启动。
临时兼容方案(不推荐,仅作应急使用)
如果暂时无法升级Ruby版本,可以找到报错日志中提到的Documents/Flutter/packages/flutter_tools/bin/podhelper.rb文件,将第57行的each_child替换为children.each,修改后重新执行pod install即可。该方案仅为临时适配,后续仍建议升级Ruby版本避免其他兼容问题。
内容的提问来源于stack exchange,提问作者Pranjali Wagh
相关产品推荐
相关产品推荐

