目录
一、前言
二、安装Cocoapod
1、ruby环境
2、安装Cocoapod
三、使用Cocoapod
1、为主工程生成Podfile
2、为子工程生成 .podspec
3、为.a或者是.framework生成.podspec
4、运行整个pod工程
四、从工程中删除Cocoapod
一、前言
在开发过程中,当项目越来越大,涉及到的工程数量逐步增多时,如何有效的管理众多的工程,如何让多人协作开发变得更轻松,就显得尤为重要。
目前,主要的多工程管理方式主要有两种,一是利用workplace在一个主的工程下面添加很多子工程,二是通过cocoapod来集成多个工程。各自利弊这里暂不赘述,开发久了自然而然的知道什么样的项目适合哪种方式的工程管理结构。本文主要说明cocoapod从安装到具体使用的流程,作为记录,也是分享。
二、安装Cocoapod
1、ruby环境
在安装Cocoapod前要确认ruby是否正确安装,可以用如下命令确认当前ruby环境:
$ ruby -v
ruby 2.2.6p396 (2016-11-15 revision 56800)
$ gem -v
2.6.11
如果没有安装,可以参考ruby china的文档进行安装。
2、安装Cocoapod
(1) 添加gem源
⚠️淘宝源https://ruby.taobao.org/ 已经停止维护了,需要使用https://gems.ruby-china.org/ 作为gem源。首先需要确认自己的gem源:
$ gem sources -l
https://ruby.taobao.org/
如果已经添加了taobao的源,可以使用如下命令修改gem源:
$ sudo gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/
如果没有添加gem源,可以使用如下命令添加gem源:
$ sudo gem sources --add https://gems.ruby-china.org/
添加完成后,确认当前gem源:
$ gem sources -l
https://gems.ruby-china.org/
(2) 安装Cocoapod
1> gem install cocoapods
因为CocoaPods1.0.1不支持C++项目的lint,所以为了确保自己安装的pod能够正常使用,最好跟你身旁的小伙伴确认下需要安装哪个pod版本。这里已安装0.35为例说明:
$ sudo gem install cocoapods -v 0.35
2> pod setup
如果直接执行pod setup,会发现setup操作好像“卡住”不动,实际上pod操作并非是卡住不动,只是没有操作日志输出而已。
$ pod setup
Setting up CocoaPods master repo
如果你的耐性很足,执行上面的pod setup然后等结果就行(放心,肯定会有执行完成的时候😄),pod setup的下文可以略过。
但是,如果你跟我一样急性子,就一起看看这里的两种解决“卡住”的方案:
1>> 查看下载文件进度
$ cd ~/.cocoapods/
$ ls -al
$ open .
查看cocoapod安装目录下repos文件的大小,等repos文件有差不多400M的时候,pod setup操作就要执行完成了。
2>> 手动下载文件
$ cd ~/.cocoapods/
$ git clone https://github.com/CocoaPods/Specs
Cloning into 'Specs'...
remote: Counting objects: 1183900, done.
remote: Compressing objects: 100% (5783/5783), done.
...
直接在.cocoapod目录下下载Specs文件,当前要确保文件的路径为:
然后,你就可以愉快的使用pod了。
三、使用Cocoapod
pod的主要使用场景有:
1、 为主工程生成Podfile。
2、为子工程生成 .podspec。
3、为.a或者是.framework生成.podspec。
4、运行整个pod工程。
1、为主工程生成Podfile
在工程的.xcodeproj目录(必须在此目录)中,执行如下命令,即可得到Podfile。
$ pod init
关于Podfile文件的使用,直接看我的注释吧,不再赘述。
2、为子工程生成 *.podspec
为test.xcodeproj工程添加对应的podspec,可以使用如下命令:
$ pod spec create test
关于podspec文件的使用,同样的看注释,不再赘述。
3、为.a或者是.framework生成*.podspec
可以通过如下命令生成库的工程,里面包含了*.podspec文件,不过要按照提示输入对应的参数。
$ pod lib create testlib
这里podspec的使用跟上面的一样,不再啰嗦了。
4、运行整个pod工程
按照上面的步骤,在子工程下面添加完成podspec之后,在主工程的Podfile对应目录下执行如下命令,即可得到对应的 *.xcworkspace工程入口。
$ pod install --no-repo-update
当然,为了省事方便,你可以借鉴如下的脚本来运行你的工程:
四、从工程中删除Cocoapod
如果发现工程里面没必要使用cocoapod集成各个工程了,需要删除怎么办?首先想到的是如下步骤:
1.删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹;
2.删除xcworkspace文件;
3.使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用。
然而,做完这些发现还是报错diff: /Podfile.lock: No such file or directory:
后来发现,还需要删除这里的pod配置: