近期刚更新了新的电脑,从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)
为此,我刚开始是以为版本不对,于是我先卸载之前插件版本,准备重装这个插件,发现无效。
sudo gem uninstall cocoapods-acknowledgements
再执行:sudo gem install cocoapods-acknowledgements
执行pod install仍然报同样错误。
然后,我以为是整个版本的环境配置问题,于是把全部的版本都卸载:
还是不行,后来通过搜索 查到可能是 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 到任何一个实际存在的目录下在执行命令,或者给这个文件目录操作权限。
安装 ffi 成功
但是并没有用!!!
必须要先右键 - 》显示简介 -〉
开启 rosetta -》
再执行
sudo arch -x86_64 gem install ffi
再执行:arch -x86_64 pod install
耽误了这么久,还是下面的方法可靠,关键点还是rosetta 这个库,协助芯片兼容。