利用rvm管理ruby版本,使用ruby环境下的gem安装cocoapods
一、cocoapods安装
1.安装rvm
- 安装
curl -L get.rvm.io | bash -s stable
source ~/.bashrc
source ~/.bash_profile
- 如果网速较慢,修改rvm的ruby安装源镜像路径
sed -i -e 's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g' ~/.rvm/config/db
2.安装ruby
- 列出已知的ruby版本
rvm list known
- 安装指定的ruby版本
rvm install 1.9.3
- 使用指定ruby版本
rvm use 1.9.3
- 将指定的ruby版本设为默认
rvm use 1.9.3 --default
- 查询已安装的ruby版本列表
rvm list
- 卸载指定的ruby版本
rvm remove 1.9.2
3.安装cocoapods
- 查看当前ruby版本
ruby -v
- 移除现有ruby默认源
gem sources --remove https://rubygems.org/
- 添加gem镜像源
gem sources -add https://ruby.taobao.org/
- 验证新源路径
gem sources -l
- 更新gem
sudo gem update --system
- 安装或升级cocoapods
// 原命令为
sudo gem install cocoapods
// OS X 系统升级后改为
sudo gem install -n /usr/local/bin cocoapods
pod setup
二、cocoapods使用
- 搜索第三方库
pod search XXX
- cd到指定文件夹目录后创建Podfile文件
touch Podfile
- 使用vim编辑文件
vim Podfile
- 编写文件内容
// 指定路径
xcodeproj "/Users/XXX/XXX/XXX.xcodeproj"
// 所有的target使用相同的第三方依赖配置
link_with 'TargetName1', 'TargetName2'
// 指定iOS版本号
platform:ios, '8.0'
// 添加所需第三方库
pod 'AFNetworking', '~> 2.3.1'
// 退出vim时输入:wq
或
source 'https://github.com/CocoaPods/Specs.Git'
platform :ios, '6.1'
// 不同的target使用不同的第三方依赖配置
target :TargetName1 do
pod 'MKNetworkKit'
pod 'MBProgressHUD'
pod 'IQKeyboardManager'
pod 'Toast'
end
- 安装pod导入第三方库
pod install
若只需更新则直接update
pod update
若存在警告则打开工程,为每个target的,build setting里的四个地方,增加$(inherited)。
Other Link Flags
Library search Paths
Header search Paths
Framework search Paths
更新本地资源库
pod repo update
三、常用命令及参考
- cocoapods帮助
pod -h
- cocoapods安装路径
~/.cocoapods
- 查看目录下文件大小
du -sh *
- 若网络条件较差,不更新资源库,则更新
podfile时可使用:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
-
注 - CocoaPods版本设置
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0' //只使用2.0版本
pod 'AFNetworking', '> 2.0' //使用高于2.0的版本
pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本
pod 'AFNetworking', '< 2.0' //使用小于2.0的版本
pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本
pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
四、建立自己的Podspec
1.Github上托管开源仓库
- Github上创建仓库并clone进入本地目录
git clone https://github.com/SilverBulletZyp/ZYP_HomeViewController.git
-
完善好本地目录下的项目
-
初始化本地项目的podspec
pod spec create ZYP_HomeViewController
- 填写tag
// 创建tag
git tag '1.0.0'
git push --tags // push不上去可先删除
// 查看tag
git tag
//删除一个指定的tag,并上传一个空tag到远程tag
git tag -d <tagname>
git push origin :refs/tags/<tagname>
- 填写
.podspec
Pod::Spec.new do |s|
s.name = "ZYP_HomeViewController"
s.version = "1.0.2"
s.summary = "ZYP_HomeViewController for Project Homepage."
s.description = <<-DESC
a simple way to add Controllers and show in tableview
DESC
s.homepage = "https://github.com/SilverBulletZyp/ZYP_HomeViewController"
s.license = "MIT"
s.author = { "zyp" => "807536782@qq.com" }
s.platform = :ios
s.source = { :git => "https://github.com/SilverBulletZyp/ZYP_HomeViewController.git", :tag => "#{s.version}" }
s.source_files = "ZYP_HomeViewController/Base/**/*.{h,m}"
- 验证是否可用
pod lib lint --allow-warnings // 验证是否可用(allow-warnings允许报错)
pod lib lint --verbose // 查看详细错误信息
// 若可用则
ZYP_HomeViewController passed validation.
- 推送
podspec文件至CocoaPod官方库
// 注册cocoapods账号(--verbose便于输出调试信息)
pod trunk register <email> '<password>' --verbose
// 确认邮件后也可再次查看自己注册信息
pod trunk me
// 也可添加其他开发者
pod trunk add-owner <email>
// 推送到官方库(忽略警告)
pod trunk push ZYP_HomeViewController.podspec --allow-warnings
- 查看结果
🎉 Congrats
🚀 ZYP_HomeViewController (1.0.2) successfully published
📅 August 9th, 02:40
🌎 https://cocoapods.org/pods/ZYP_HomeViewController
👍 Tell your friends!