CocoaPod出来很久了。一个第三方库管理的工具。CocoaPods的项目源码在https://github.com/CocoaPods/Specs上管理。
2016年5月10号,CocoaPods终于在其官方博客上宣布正式发布CocoaPods 1.0。与此同时,公开了相应的Mac版App——CocoaPods App 1.0。虽然已经出来很多年了,可见CocoaPods团队的匠人精神。
安装CocoaPods 准备工作
查看ruby版本
ruby -v
查看ruby源
gem sources -l
// 更新升级gem 做技术的应该还是会翻墙的
sudo gem update —system
查看gem 版本
gem -v
安装篇
OS X 10.11 以前安装命令为:
// 安装cocoapods
sudo gem install cocoapods
Mac系统为OS X EL Capitan安装命令为:
sudo gem install -n /usr/local/bin cocoa pods
卸载CocoaPods
sudo gem uninstall cocoapods
常用操作
我们可以用CocoaPods Mac app来给自己的工程创建Podfile文件
将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下
pod setup
如果更新太慢可以用命令查询大小确定是否在下载
cd ~/.cocoapods/repos 进入目录
du -sh *
这个是我打印自己的目录详情 551M master
以后可以每周更新一次
初始化Podfle文件 并且格式也有
pod init
-----------------------------各种文件------------------------------
1. Podfile文件
项目的第三方库的依赖以及项目的基本配置
2. Podfile.lock文件
最后一次更新Pods时, 保存所有第三方框架的版本号
3. pods目录
保存通过pod install或者pod update下载下来的第三方开源库的源代码
4. xxx.xcworkspace文件
重新生成一个工作空间,打开这个工程文件来进行开发
-----------------------------Podfile文件结构------------------------------
source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git'
platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!
target'MyProjectName'do
pod'SDWebImage','3.7.5'
pod'FMDB','2.6'
end
-----------------------------Podfile参数解释------------------------------
1. platform :iOS, '7.0'
指定了开源库应该被编译在哪个平台以及平台的最低版本。
若不指定平台版本,官方文档里写明各平台默认值为iOS:4.3,OS X:10.6,tvOS:9.0,watchOS:2.0
2. inhibit_all_warnings!
屏蔽cocoapods库里面的所有警告
这个特性也能在子target里面定义,如果你想屏蔽某pod里面的警告也是可以的:
pod'MyProject', :inhibit_warnings =>true
3. xcodeproj,现在被project代替,这个变量就别使用了
允许你指定需要链接的工程
4. use_frameworks!
使用frameworks动态库替换静态库链接
(1)swift项目cocoapods 默认 use_frameworks!
(2)OC项目cocoapods 默认 #use_frameworks!
5. workspace
指定应该包含所有projects的Xcode workspace.
如果没有显示指定workspace并且在Podfile所在目录只有一个project,那么project的名称会被用作于workspace的名称
6. project
默认情况下是没有指定的,当没有指定时,会使用Podfile目录下与target同名的工程:(我们只有一个工程MyProject)
# MyProject这个Target只有在MyProject工程中才会链接
target 'MyProject' do
project 'MyProject'
...
end
5. target 'xxxx' do
end
指定特定Target的依赖库
可以嵌套子Target的依赖库
6. inherit! :search_paths
明确指定继承于父层的所有pod,默认就是继承的
7. source
指定specs的位置,自定义添加自己的podspec。公司内部使用
cocoapods 官方source是隐式的需要的,一旦你指定了其他source 你就需要也把官方的指定上
例如:
source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git
-----------------------------常用指令------------------------------
1. pod setup
将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下,更新本地仓库。
2. pod repo update
执行 pod repo update更新本地仓库,本地仓库完成后,即可搜索到指定的第三方库,作用类似pod setup。不过这个命令经常不单独调用。比如执行pod setup、pod search、pod install、pod update会默认执行pod repo update
3. pod search xxx
查找某一个开源库。查找开源库之前,默认会执行pod repo update指令
4. pod list
列出所有可用的第三方库.现在已经2.4W+了.还在不断地增长
5. pod install
会根据Podfile.lock文件中列举的版本号来安装第三方框架
如果一开始Podfile.lock文件不存在, 就会按照Podfile文件列举的版本号来安装第三方框架
安装开源库之前, 默认会执行pod repo update指令
6. pod update
将所有第三方框架更新到最新版本, 并且创建一个新的Podfile.lock文件
安装开源库之前, 默认会执行pod repo update指令
7. pod install --no-repo-update
8. pod update --no-repo-update
安装开源库之前, 不会执行pod repo update指令