Cocoapods 的理解与使用
我的原文博客:传送门
一、cocoapods 简介
Java:"我有Maven",nodejs:"npm是我老伴儿",iOS的依赖管理工具:"非cocoapods莫属了"。在敏捷开发的项目上,cocoapods的作用巨大,为开发者节省不少时间和重复性的工作,明确一点的是cocoapods项目源码都在Github 上。有些“杠精”肯定要抗议说cocoapods安装好心累遇到各种问题,不虚,接下来就分享出我使用以来的各种步骤心得与大家分享,但首先是要了解下cocoapods的原理才能更好的解决问题。
二、cocoapods原理
cocoapods 项目 会通过Podfile 文件 生成一个Pods.xcodeproj 工程,工程中会引入所有你添加的第三方库并默认生成相应的静态.a库,添加进pods工程引用中,最终Pods工程会生成一个libPod-xx.a 库,引入到你的工程中(引入原理就是生成一个环境变量配置文件XcodeConfig )。第一幅图为 pods config文件,二图为在主工程中配置。
在pods工程的supportFiles还存放着引用库说明的markdown文件,plist文件,资源文件脚本resource.sh。
三、cocoapods安装
1.ruby mac系统默认安装了ruby 环境这一步可略
2.更换ruby源
sudo gem sources -l (查看源)
gem update --system
gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
gem sources -l (验证是否替换成功)
3.安装cocoapods
sudo gem install -n /usr/local/bin cocoapods
//如果是多个xcode 版本 Download 为相应路径下的xcode
sudo xcode-select -switch /Download/Xcode.app/Contents/Developer
4.安装pods
pod setup
//如果总是pod失败 在finder中 command + G,粘贴如下代码
~/.cocoapods/repos
具体安装不成功的办法是 传送门
等待一段时间安装成功后,在终端下 输入 pod search Masonry 检查下是否安装成功,退出库版本下按 q
查看pod 版本 : pod --version
四、cocoapods使用
1.新建一个工程
2.cd 到工程目录下
3.创建podfile 文件
进入podfile 文件编辑界面引入某个库
然后 按下esc 键,再输入 : 号,最后 输入 wq 回车退出编辑界面(此后就可以直接在工程中编辑podfile)
最后在终端 输入 pod install 下载安装
4.更新指定库
//当你在podfile新增多个其他库后 ,输入以下命令就只会下载新增库,已添加的不去更新
pod install --verbose --no-repo-update
//当你只想更新指定库,而不是全部更新,可输入以下命令
pod update xxx库名 --verbose --no-repo-update
以上就是使用过程了。
如果你想创建私有库可参考这篇文章:传送门
五、可能遇到的问题汇总
1.确保网络一直通常,如果再pod steup 过程中突然换网或断网,再想接下去就很难,还不如要退出重新pod setup
2. [!] Found multiple specifications for `REFormattedNumberField (1.1.6)`:
这是由于cocoapods版本不一致,需要团队开发者统一cocoapods版本
3.ERROR: SSL verification error at depth 1: unable to get local issuer certificate
这种证书错误就需要更换最新的ruby源:https://gems.ruby-china.org/ ,更新方法安装过程已经讲过了
4.不同target 安装不同的库,需要 在podfile 文件上 分别使用target 命令如:
target :'test01' do
pod 'AFNetworking', '~> 2.0'
end
target :'test02' do
pod 'Masonry', '~> 1.0.0'
end
5. RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
这种问题一般是因为 xcode 打开了,或者选择路径不对要切换到相应xcode 版本包下sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
6.RPC failed; curl 18 transfer closed with outstanding read data remaining
repo仓库存储不足 ,输入: git config --global http.postBuffer 524288000 ,单位bit
更多问题如下:
其他特殊问题:https://www.jianshu.com/p/8c50c34167e3
六、参考:
1.另一种iOS 库管理工具 Carthage :http://swiftcafe.io/2015/10/25/swift-daily-carthage-package/
2.pod使用各种操作参考:https://www.jianshu.com/p/75e19c92df50
3.cocoapods的静态库和动态库:https://www.jianshu.com/p/3d0ae289dee0
以上就是个人项目使用cocoapods的经验,不足之处请见谅,希望能帮到有需要的朋友!
网友评论