Cocoapods安装

一切反动派都是纸老虎 ”(All the reactionaries are the Papertiger)

一开始觉得cocoapods很神秘,过程和步骤很繁琐,可是当你拨开重重迷雾看到最后的结果的时候,你会感慨:不过如此~

打开终端

1.先升级Gem(mac自己带有Gem,不用专门安装)

sudo gem update --system

2.切换cocoapods的数据源,切换成taobao的镜像

【先删除,再添加,查看】

gem sources --remove https://rubygems.org/

gem sources -a https://ruby.taobao.org/

gem sources -l

出现下边 的说明安装正确


Cocoapods安装_第1张图片

3.安装cocoapods

sudo gem install cocoapods

或者(如10.11系统)sudo gem install -n /usr/local/bin cocoapods

4.将Podspec文件托管地址从github切换到国内的oschina,换成国内的镜像

【先删除,再添加,再更新】

pod repo remove master

pod repo add master https://gitcafe.com/akuandev/Specs.git

pod repo update

5.设置pod仓库

pod setup

出现如下情况,说明安装正确


Cocoapods安装_第2张图片

6.测试

【如果有版本号,则说明已经安装成功】

pod —version

pod search afn

出现如下情况,说明安装cocoapods正确


Cocoapods安装_第3张图片




另外:如何在一个工程文件里面建立pod

1、打开终端:cd 拖入该工程文件的文件夹(自动形成路径)回车

2、vim podfile

3、i   (进入编辑模式)

4、支持7.0及以上的iOS系统

platform:ios,'7.0'

pod 'AFNetworking'

pod 'Masonry'

5、esc(退出编辑模式)

6、:wq(退出保存)

那么该工程文件里面就有了pod


Cocoapods安装_第4张图片

打开工程文件的时候,不要再打开倒数第二个,而需要打开最后一个工程文件,就能看到pods。


我以为到这里的话就算完了呢,结果,运行报错:


这个错误看似是缺少.a 的错误或者是关于路径的错误,可是pods貌似没有.a ,那么我们考虑路径的问题,那么问度娘,但是关于这方面的资料很少,幸好一个同事孜孜不倦的查找到了解决办法,在此谢谢他,虽然他看不到,哈哈

解决办法如下:


Cocoapods安装_第5张图片

上边说的是什么呢,大概就是说叫你去xcode里面的Product--Scheme--Edit Scheme


Cocoapods安装_第6张图片

然后添加Pods--clean工程--运行工程即可。

基本上到上述步骤的第四步就可以解决这个问题,我的就是,所以后边的5、6没有仔细看,如果你的工程到了第四步还是不行,请参考5、6步骤。

至于为什么添加这个Pods,大概就是路径的问题,笔者亲测,在操作了上述步骤后,在工程运行成功了的情况下,再把添加上得Pods删除掉,再次运行,不会报错,依旧可以运行成功,猜测是xcode记录了相关路径,所以即便去掉这个Pods,也不会影响运行,但是在一次也没有添加过的情况下,会一直报错。至于具体深入的原因,我也说不上来,以后如果想明白了,再回来解释吧,或者哪个网友好心给解释一下,在此谢谢了。

至少,幸运的解决了这个bug。



如果在别的工程文件里面需要安装cocoapods,怎么办呢,不会又重新安装一遍吧?

答案显然不是重新安装一遍,在你进行了上述操作(安装cocoapods的过程)实际上就是在你的电脑上进行了cocoapods的环境配置工作,那么我们在另一个工程文件里面只需要配置好环境即可。

步骤如下:

打开终端--进入你需要安装的那个工程文件的文件夹--vim podfile--i   (进入编辑模式)--

platform:ios,'7.0'

pod 'AFNetworking'

pod 'Masonry'

--esc(退出编辑模式)--:wq(退出保存)--pod install


Cocoapods安装_第7张图片

这样就安装好了,再在安装好的工程文件里面进行Product--Scheme--Edit Scheme--Build--Pods添加,运行,就没有错误了。



另外还有一个问题是cocoapods的弊端:例如百度地图的三方库,因为这个库是闭源的,是用framework封装好的,所以在删除旧包,用cocoapods添加新包以后,编译会报错:


Cocoapods安装_第8张图片

这tm说什么呢,,,,大概意思就是在编译或者运行的时候找不到BMKXXX相关的东西,那么我们怎么办呢?

这个报错是因为没有了BMKXXX.framework,所以找不到它们,是因为在删除旧的百度地图的包的时候同时把Build Phases里面的Link Binary With Libraries里面的关于百度地图的framework删除了,这里需要自己手动添加一遍,问题就解决了。这是不开源的弊端,所以以后如果遇到framework的包需要注意删除旧包后需要添加framework。


Cocoapods安装_第9张图片

通通加一遍就好了。。。

可是Product--Scheme--Edit Scheme--Build--Pods里面依旧没有百度的包,不知道咋回事


Cocoapods安装_第10张图片



没有比较就没有区别。

对比着闭源的,我们试着将开源的SDWebImage库通过cocoapods引入工程文件里面,编译和运行是不需要添加任何东西的。

Cocoapods安装_第11张图片

同样的我们可以在Product--Scheme--Edit Scheme--Build--Pods里面看到SDWebImage库。

Cocoapods安装_第12张图片

所以,如果所用的包是闭源的,需要注意添加framework和其他的一些报错,而开源的则没这个必要。



另外需要注意的是:通过cocoapods添加的库,一定要保证名字是官方给的,因为山寨的名字也很多,所以一定要保证三方库的准确性。最简单的方法就是去github上边查一查这个库,记得选择星星最多的:


Cocoapods安装_第13张图片

一般如果三方库支持cocoapods更新的,github会在里面告诉你怎么用cocoapods更新。


Cocoapods安装_第14张图片



参考1、cocoapods安装详细步骤

      2、使cocopods管理开源库编译出现Library not found for -lPods问题的解决方法

      3、百度地图-配置开发环境iOS SDK

      4、github

你可能感兴趣的:(Cocoapods安装)