Macbook M1执行Pod install报错:undefined method `map' for nil:NilClass
解决Mac M1上Cocoapods 1.12.1修改Podfile后pod install报错的问题
可行修复方案
1. 降级Cocoapods到1.11.3版本
该版本在M1设备上对Podfile变更的兼容性更稳定,执行以下命令:
sudo gem uninstall cocoapods -v 1.12.1 sudo gem install cocoapods -v 1.11.3
完成后修改Podfile并重新执行pod install。
2. 彻底清理Pod相关缓存文件
Podfile.lock或Pods文件夹的残留缓存可能引发异常,步骤如下:
- 删除项目根目录下的
Podfile.lock文件 - 删除项目中的
Pods文件夹 - 执行
pod deintegrate - 重新运行
pod install
3. 检查Podfile语法与新增配置
确认新增Pod的配置无错误:
- 排查是否遗漏引号、括号等语法符号
- 确保新增Pod的版本范围设置合理,避免版本冲突
- 若使用
post_install钩子,检查钩子内代码是否存在未处理nil值的情况(比如调用map前先判断对象是否非空)
4. 用Rosetta模式运行终端执行命令
右键终端图标选择「使用Rosetta打开」,然后执行:
gem uninstall cocoapods gem install cocoapods pod install
通过x86_64架构运行Cocoapods,规避M1架构下的兼容性问题。
5. 重置Ruby环境(适用于rbenv/rvm管理环境)
如果你的Ruby环境由rbenv或rvm管理,尝试重置:
- rbenv用户:
rbenv uninstall 你的Ruby版本号 rbenv install 你的Ruby版本号 rbenv global 你的Ruby版本号 gem install cocoapods -v 1.12.1
- rvm用户:
rvm remove 你的Ruby版本号 rvm install 你的Ruby版本号 rvm use 你的Ruby版本号 --default gem install cocoapods -v 1.12.1
重置后重新执行pod install。
内容的提问来源于stack exchange,提问作者nelsballs
相关产品推荐
相关产品推荐

