M1 Mac cocoapods执行pod install报Error loading the plugin: Error loading the plugin

629 阅读1分钟

近期刚更新了新的电脑,从15款的mac pro更新到14寸 m1 pro新款,在前期的环境搭建中,安装ruby, cocoapods都没有遇到问题,但是在项目中执行pod install 时突然报了一个错误

Error loading the plugin cocoapods-acknowledgements-1.3.0. LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1/lib/redcarpet.bundle, 0x0009)

image.png

为此,我刚开始是以为版本不对,于是我先卸载之前插件版本,准备重装这个插件,发现无效。 sudo gem uninstall cocoapods-acknowledgements 再执行:sudo gem install cocoapods-acknowledgements 执行pod install仍然报同样错误。

然后,我以为是整个版本的环境配置问题,于是把全部的版本都卸载: image.png

还是不行,后来通过搜索 查到可能是 m1芯片兼容问题,于是查到以下代码: sudo gem install ffi ffi 在此处作用于c语言的动态链接库,执行之后报错: shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted 查到错误说明为: shell-init: error retrieving current directory: getcwd: cannot access parent directories: 没有那个文件或目录\ chdir: error retrieving current directory: getcwd: cannot access parent directories: 没有那个文件或目录\

该错误表示 getcwd 命令无法定位到当前工作目录和没有当前文件夹的操作权限。

此时,需要 cd 到任何一个实际存在的目录下在执行命令,或者给这个文件目录操作权限。

image.png

安装 ffi 成功

但是并没有用!!!

必须要先右键 - 》显示简介 -〉 image.png

开启 rosetta -》 image.png 再执行 sudo arch -x86_64 gem install ffi

image.png

再执行:arch -x86_64 pod install

image.png

耽误了这么久,还是下面的方法可靠,关键点还是rosetta 这个库,协助芯片兼容。