常用命令总结写在前面,具体分析往下看
# 检索框架
pod search 框架名关键字
# 创建项目,并cd到工程文件所在目录,创建Podfile文件
pod init
# ------------------------------Podfile文件内容(建议使用Xcode进行编辑)------------------------------
# 支持的iOS系统的最低版本
platform:ios,'8.0'
# 忽略引入库的所有警告(强迫症者的福音啊)
inhibit_all_warnings!
# 使用framework(包含swift库就必须使用此设置,纯OC库可以不设置)
use_frameworks!
# 下面两行是指明依赖库的来源地址
source 'https://gitclub.cn/CocoaPods/Specs.git'
source '你自己的私有库镜像源'
# 做一些安装之前的更改
pre_install do |installer|
...
end
# 依赖目标一般为项目名称
# 针对MyApp target引入AFNetworking
# 针对MyAppTests target引入OCMock,
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
target 'MyAppTests' do
inherit! :search_paths
pod 'OCMock', '~> 2.0.1'
end
end
# >>>>>以下命令一般采取系统默认设置,无特别需要无需设置<<<<<
# install! 这个命令是cocoapods声明的一个安装命令,用于安装引入Podfile里面的依赖库
install! 'cocoapods',
:deterministic_uuids => false,
:integrate_targets => false
# 默认情况下,我们不需要指定,直接使用与Podfile所在目录的工程名一样就可以了。如果要指定另外的名称,而不是使用工程的名称,可以这样指定
workspace 'MyWorkspace'
# 作用于哪个工程
project 'MyProject'
# 这个是cocoapods的一些配置,官网并没有太详细的说明,一般采取默认就好了,也就是不写.
post_install do |installer|
installer.pods_project.targets.each do |target|
puts target.name
end
end
# >>>>>以下命令一般采取系统默认设置,无特别需要无需设置<<<<<
# ------------------------------Podfile文件内容(建议使用Xcode进行编辑)------------------------------
# 注意pod install和pod update的选择
# 安装或更新三方库请使用下面的命令,避免直接使用pod update、pod install
# 都说CocoaPods1.0.1之后就可以直接执行pod update、pod install命令,
# 并不会去更新远程仓库,但是实践告诉我不行,所以还是建议用下面的命令
# 安装框架
pod install
# 更新框架
pod update --verbose --no-repo-update
Cocopods工作原理图
Cocopods工作原理.png检索第三方框架
- 检索命令
pod search 框架关键字
- 命令作用:从
本地缓存
的第三方框架描述信息
生成的检索文件
中检索相关框架的信息 - 遇到的问题
- 问题描述:
Unable to find a pod with name, author, summary, or description matching 'xxx'
- 解决方案:删除cocoapods索引文件
sudo rm ~/Library/Caches/CocoaPods/search_index.json
- 问题描述:
安装第三方框架
- 使用Xcode新建一个工程
- 打开终端,
cd
到工程目录下 - 生成
Podfile
文件-
Podfile
文件是使用ruby语法编写的框架依赖描述文件
,就是告诉cocoapods需要下载哪些框架 -
Podfile
文件配置语法详见Podfile语法参考(译) - 创建命令:
pod init
- 使用
Xcode
orvim编辑器
编辑Podfile文件 - 在终端中使用
vim编辑器
编辑Podfile步骤-
vi podfile
在vim编辑器中打开podfile
文件 - 按
i
键进入编辑模式 - 编辑完成后,按
esc
键退出编辑模式 - 按
:wq
组合键并回车
退出vim编辑器 - 记得在Podfile文件的顶部加入下面的repo源地址:
source 'https://gitclub.cn/CocoaPods/Specs.git'
-
- Podfile示例
# 指定的repo镜像源 source 'https://gitclub.cn/CocoaPods/Specs.git' # 最低支持的iOS版本 platform :ios, '8.0' # 依赖目标一般为项目名称 target '依赖目标' do # 以framework的形式使用第三方库 use_frameworks! pod 'AFNetworking', '~> 3.0' # 网络库 pod 'SDWebImage', '~>3.8' # 图片加载 pod 'SVProgressHUD' # Loading框 + 提示框 pod 'MJRefresh' # 下拉刷新 pod 'HandyFrame' # 使用frame布局 pod 'YYModel' # 模型转换 end
-
- 安装框架
// --verbose表示打印详细信息 // --no-repo-update表示不更新本地框架信息源 // 安装框架,此命令在新版本中不会更新索引库 pod install // 更新框架,防止更新索引库 pod update --verbose --no-repo-update
- 遇到的问题
- 问题描述:
The dependency 'SSZipArchive', '~> 1.6.2' is not used in any concrete target.
- 解决方案:指定依赖目标
- 从cocoapods 1.0.1
及后续
版本必须明确
指定依赖目标
# 依赖目标一般为项目名称 target '依赖目标' do
- 问题描述:
- 安装完后生成的文件
-
Podfile.lock
文件:记录上一次
下载的框架的版本号
-
*.xcworkspace
文件:工作区文件
-
- 以后要添加新的库,就编辑
Podfile
文件,cd
到工程根目录下,然后执行pod install --no-repo-update
命令就可以了 -
pod install
和pod update
在没有
指定框架版本号
时是有区别
的-
pod install
在Podfile.lock
文件存在时直接读取并下载框架,如果是团队开发为了保证版本一致,建议使用此命令 -
pod update
直接读取Podfile
文件中的信息,不管Podfile.lock
文件是否存在,所以在团队开发时可能导致
大家使用的第三方库的版本不一致
-
-
pod install
和pod update
选择- 一般情况下,
第一次
从共享库把项目下载下来之后,应该使用pod install
命令安装,而不是
选择pod update
,目的是为了保证大家使用的第三方框架版本一致
- 如果以后大家需要升级第三方框架,那么大家
约定好
,统一
再执行一次pod update
-
建议
在编写podfile文件时,明确
指定第三方库的版本,格式如下:pod '第三方库名称', '~> 版本号'
,这样不管使用pod install
还是pod update
效果都是一致的
- 一般情况下,
网友评论