cocoapods安装
安装 CocoaPods
(在安装之前,建议先安装上rvm(ruby version manager)工具)
安装最新版本
sudo gem install -n /usr/local/bin cocoapods -v 1.0.0
cocoapods基本使用
1.在项目中创建Podfile文件
pod init
2.编辑Podfile文件,设置需要集成的库
platform :ios, '9.0'
target 'pccTestOC0518' do
pod 'Masonry'
#pod 'ReactiveCocoa', '~> 7.0'
pod 'YYKit'
pod 'MBProgressHUD'
pod 'NSLogger'
end
3.pod install/update会在项目目录中生产pccTestOC0518.xcworkspace然后打开该工程即可;
使用cocoapods遇到的问题及解决方式汇总
Q1:pod search error
清理缓存sudo rm -rf ~/Library/Caches/CocoaPods
Q2:多版本pod并存
主要是解决旧项目Podfile中在新版本的pod中update会有依赖错误,可以用指定版本的pod来操作,而新的工程可以使用新版本的pod
1、 安装rvm(Ruby Version Manager)工具
//可能需要翻墙
$ curl -L get.rvm.io | bash -s stable
// 要想使用 'rvm'命令需要执行下面一行代码
$ source ~/.rvm/scripts/rvm
2、安装多版本ruby及切换
// 1.列出可安装的ruby版本
> rvm list known
// 2.列举当前列表
> rvm list
// 3.安装指定版本ruby
rvm install 2.5.5
// 4.卸载指定版本
rvm remove 2.4.1
// 5.切换且设置成默认版本
> rvm use 2.3 [--default]
3、可以在不同的ruby环境下安装不同版本的cocoapods
sudo gem install cocoapods -v 1.4.0
Q3:解决不同项目需要不同版本的pod,代替Q2的另外一种处理
直接安装多版本pod,然后使用以下命令指定pod install版本
pod _0.35.0_ install, pod _0.38.2_ install
Q4:如何创建个人私有pod仓库
- git仓库至少需要两个,一个用于管理私有库对应版本的podspec文件,一个用于存放私有库的源文件
- 创建pod仓库流程
- 创建一个私有的Spec Repo,用于管理私有库对应版本的podspec文件
- 创建pod私有库所需要的项目工程文件,并上传到私有库
- 创建pod所对应的podspec文件,并进行验证/测试
- 向私有的Spec Repo中提交podspec
创建一个私有repo
# pod repo add CCSpecs https://github.com/buvtopcc/CCSpecs.git
查看现有的podspec源
# ls ~/.cocoapods/repos
创建pod项目
# pod lib create NAME
commit项目工程的源文件|
# git add .
# git commit -m "first commit"
# git remote add origin https://github.com/buvtopcc/CCUtils.git
# git push -u origin master
# git tag -m "first release" 0.0.1
# git push --tags #推送tag到远端仓库
验证podspec的合法性
# pod lib lint NAME.podspec
向私有的Spec Repo(如:CCSpecs)中提交podspec
# pod repo push CCSpecs __NAME__.podspec
向公共的repo提交podspec
# pod trunk push __NAME__.podspec (--verbose)
Q5: 命令行tag操作命令
#查看本地tag
git tag
#创建tag
git tag -a v1.0 -m "commit comment message"
#创建非head的tag
$ git tag -a v1.0 commitId (通过git log查)
#推送tags到远程仓库
git push [origin] --tags
git push origin 标签名
#查看某个tag的信息
git show 标签名
#切换到某个tag
与切换分支命令相同,用git checkout 标签名 (但现在处于一个空的分支上)
git checkout master 切换master代码分支
#删除本地tag
git tag -d 标签名
#删除远程仓库tag
git push origin :refs/tags/标签名