编译的时候会报标题的错误,想直接看标题的解决方式,则从第四条看起!!!前提cocoapods安装成功哈~
最近换了新电脑,系统为macOS Big Sur 11.0.1,Xcode版本为12.2,在安装完cocoapods以后,项目依然不能运行,因为尝试时间较久,遇到的问题较多,最终找到原因并解决,过程中遇到的一些问题也做下记录,方便以后自己参考,并深深的记住这次费时如此之久,靠着灵光一闪才解决的问题!!!因为是新电脑,所以可能需要从0说起,着急的可直接看后面第四条,仅供参考!!!
一、准备工作
1、安装ruby:一种简单快捷的面向对象(面向对象程序设计)的脚本语言。iMac电脑自带ruby,此步可省略
查看ruby版本:ruby -v
2、安装homebrew,一款软件包管理工具,拥有安装、卸载等功能,之所以安装他是因为第三步出现了问题,需要安装该软件,才可以继续,具体的错误和原因我也不记得了,该软件装了也并无坏处,以后也会用到的
xcode命令行工具:xcode-select --install
安装homebrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
如果上面报错,则输入 git clone https://github.com/Homebrew/homebrew-core/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
如果继续报错
fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
则输入brew doctor 即可进行安装
3、安装rvm,方便ruby环境进行管理,如升级或更换版本
curl -L get.rvm.io | bash -s stable
source ~/.bashrc
source ~/.bash_profile
以上安装失败,报如下错:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 194 0 0 162 0 0:00:01 0:00:01 --:--:-- 162
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
解决方法:先修改下host,再进行网络请求
sudo vim /etc/hosts
在打开的文件中添加:199.232.28.133 raw.githubusercontent.com
再使用命令:curl -L get.rvm.io | bash -s stable
rvm的其他命令行:
查看rvm版本:rvm -v
卸载rvm:rvm implode
设置ruby的默认版本:rvm use 2.6.3 --default
列出ruby可安装的版本信息:rvm list known
安装某个版本的ruby:rvm install 2.6.3
二、更换ruby源
查看当前ruby源:gem sources -l
如果没有源或是.org的源,则需要更换
先移除之前的源:gem sources --remove https://rubygems.org/
添加新的源:gem sources --add https://gems.ruby-china.com/
成功的话会显示如下内容:
![](https://upload-images.jianshu.io/upload_images/7984464-70afd384bfcbcf42.png?imageMogr2/auto-orient/strip|imageView2/2/w/740)
三、安装cocoapods
1、10.11系统以后基本上都用该命令行安装cocoapods:sudo gem install -n /usr/local/bin cocoapods
这一步完成后执行:pod setup
这一步本身需要很长时间,因为需要进行下载各库,但我这里这一步分分钟就好了,所以我怀疑没安装上
检查是否安装上了:pod repo
若里面有内容则代表安装上了,返回0 repos则没安装上
![](https://upload-images.jianshu.io/upload_images/7984464-5725188a2a93b91c.png?imageMogr2/auto-orient/strip|imageView2/2/w/904)
也可以进入 ~/.cocoapods 文件查看repos中的文件里是否都有内容
![](https://upload-images.jianshu.io/upload_images/7984464-c7d64246e45a69c1.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
如果是空的,代表库没有下载下来
解决方法:
1、安装本地的
(1)将https://github.com/CocoaPods/Specs下载到本地,放入repos文件夹,但好像需要进行关联,自行查询吧,我这里网不成,就没搞
(2)从原来项目中拷贝下来放到repos文件夹中(我采用的该方法)
(3)使用国内源安装到本地
a、git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
b、git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
c、git clone git@github.com:CocoaPods/Specs.git
安装过程中出现了该错误,所以我用c的方法进行了安装
Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of known hosts
公钥出问题了,所以重新生成公钥
git config --global user.name "用户名"
git config --global user.email "邮箱"
搜索~/.ssh,删除其文件夹下的known_hosts文件
ssh-keygen -t rsa -C "邮箱"
然后应该再按下回车,会生成两个文件,用记事本打开id_rsa.pub,复制里面的内容,再打开GitHub官网,登录自己的账号,在setting里有个ssh and gpg keys ,创建ssh,将内容添加进去,再进行clone就可以了
以上方法我都试过,相对来说c方法比较麻烦,但因为bug一直有,我一直处于删除,重装,删除,重装的状态,但我的网又不好,所以就直接使用本地的了
如果出现了以下情况,代表网不好。。。换种方式吧
![](https://upload-images.jianshu.io/upload_images/7984464-217ac17dca0a2f5f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
四、创建podfile文件,即标题中问题的最终解决方式
1、如果是已有Podfile文件的话,需要删除,删除的地方有三个,缺一不可
(1)这四个文件先要删除
![](https://upload-images.jianshu.io/upload_images/7984464-d84c1f097f85d53a.png?imageMogr2/auto-orient/strip|imageView2/2/w/612)
(2)打开.xcodeproj,删除pod
![](https://upload-images.jianshu.io/upload_images/7984464-bcab15494d50b5f3.png?imageMogr2/auto-orient/strip|imageView2/2/w/542)
(3)target中的general中删除对应的pod库
![](https://upload-images.jianshu.io/upload_images/7984464-20ee83bc42343b4b.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
2、删除了以上内容后,重新创建podfile文件
文件路径:cd 项目路径
创建Podfile : touch Podfile
编辑Podfile : vi Podfile 注意:上面的源用的哪个,该文件中的第一行就用哪个源
编辑完成后退出 : :wq
安装Podfile : pod install
3、安装成功后,运行项目发现还是错的,此时最关键的一步来了
如图的路径下
![](https://img2020.cnblogs.com/blog/1471691/202012/1471691-20201209175146187-1848424096.png)
添加如下内容 VALID_ARCHS x86_64
![](https://upload-images.jianshu.io/upload_images/7984464-6bbc4e3f25158547.png?imageMogr2/auto-orient/strip|imageView2/2/w/1002)
这个路径下也要添加对应的VALID_ARCHS
最后清空一下再运行,搞定!!!这时候项目就运行成功了,其实这是新的系统,新的xcode出现的一个不兼容的问题,涉及的是处理器的指令集不兼容的问题,新的xcode支持了x86_64,但pod库中有些内容不支持,所以编译时会一直报这个错误,关于指令集可以自行查阅了解
注意:此解决方式只针对于macOS Big Sur 11.0.1,Xcode版本为12.2的模拟器运行不成功的问题,真机测试时需要将添加的两处valid_archs删除掉,否则会报没有权限的错误,如下图,所以真机和模拟器运行时还需修改该处进行切换
注意:如果改了以后不起作用,就用万能大法:重启,模拟器重启,xcode重启,电脑重启,哪个管用了就用哪个
![](https://upload-images.jianshu.io/upload_images/7984464-9fd6f47491041a3f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
![](https://upload-images.jianshu.io/upload_images/7984464-7222d68a1a8cf4e5.png?imageMogr2/auto-orient/strip|imageView2/2/w/988)
或者是framework not found Pods_
或者是afnetworking.h not find之类的,反正意思基本就是pods没有安装上
以上是我这里遇到的问题,仅供参考,如果有更好的解决办法,可一起探索,欢迎来提出更好的解决方式!!!