CocoaPods

CocoaPods作用

帮助管理和维护第三方框架

CocoaPods好处
  • 相比手动集成三方框架,CocoaPods会自动添加框架配置,自动添加系统依赖框架
  • 本地项目升级框架 只需一个命令就解决
什么是gem?

Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。
软件包数据源

  • https://rubygems.org/
  • http://ruby.taobao.org/

查看gem版本
gem --version
更新gem
gem update --system

查看gem数据源
gem sources

删除gem数据源
gem sources --remove https://rubygems.org/

添加数据源
gem sources -a https://ruby.taobao.org/

搜索软件包
gem search 软件包关键字

安装软件包
gem install 软件包名称

安装上一个版本软件包
gem install cocoapods --pre

卸载安装包
gem uninstall 软件包名称

注意: 以上命令最好在使用之前, 都添加sudo

  • 代表以管理员身份运行该命令
  • 有可能安装软件包的过程当中, 需要创建文件等等, 必须有管理员权限才能操作
升级ruby

安装RVM
curl -L get.rvm.io | bash -s stable
验证是否成功
rvm -v
查看ruby版本
ruby -v
列出当前所有可用版本
rvm list known

安装指定版本ruby
rvm install ruby --head

如果安装失败, 可能是没有安装homebrew, 先安装即可
http://brew.sh/index_zh-cn.html

使用gem 安装cocoapods
  • sudo gem install cocoapods -n /usr/local/bin cocoapods
安装失败的解决方案
  • sudo gem update --system 先升级gem
  • sudo gem uninstall cocoapods
  • sudo gem install -n /usr/local/bin cocoapods
更换源
  • gem sources --remove https://rubygems.org/
  • gem sources -a https://gems.ruby-china.com
查看源
  • gem sources -l
更换清华镜像
对于旧版的 CocoaPods 可以使用如下方法使用 tuna 的镜像:
pod repo remove master
pod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
pod repo update
新版的 CocoaPods 不允许用pod repo add直接添加master库了,但是依然可以:

cd ~/.cocoapods/repos 
pod repo remove master
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

最后进入自己的工程,在自己工程的podFile第一行加上:
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
初始化第三方库信息
  • pod setup
以后更新第三方库信息
  • pod repo update
安装完成后查看pod版本
  • pod --version
搜索
  • pod search
新建Podfile
  • vim Podfile
  • 输入i:进入编辑状态
  • 输入dd:删除当前行
  • 按ESC:退出编辑模式
  • 输入:wq:保存并退出
  • Podfile文件的格式
platform :ios, '8.0'
pod '框架名字'
pod '框架名字', '~> 版本号'
解析Podfile,安装第三方框架
  • pod install
  • pod install --verbose --no-repo-update
解析Podfile,升级第三方框架
  • pod update
  • pod update --verbose --no-repo-update
删除本地缓存的cocoapods索引文件
rm ~/Library/Caches/CocoaPods/search_index.json
Podfile.lock

作用: 记录着上一次下载的框架版本

pod install 和 pod update 区别

主要区别在于, Podfile文件内的框架信息, 版本描述没有指定具体版本
install

  • 如果Podfile.lock文件存在, 直接从此文件中读取框架信息下载安装,如果不存在, 依然会读取Podfile文件内的框架信息

update

  • 不管Podfile.lock是否存在, 都会读取Podfile文件的的框架信息去下载
创建自己的私有库
//上传代码至远程服务器
cd /Users/tangge/Desktop/testLib/Classes 
git init
git add .
git commit -m 'first code' 
git branch -M main
git remote add origin https://github.com/TangGeV587/testPerson.git
 git push -u origin main

//创建仓库的描述文件
pod spec create testLib
//编辑testLib.podspec文件
  spec.name         = "testLib"
  spec.version      = "0.0.1"
  spec.summary      = "testLib" //简介
spec.description  = "testLib的详细描述,字数要比spec.summary长,不然会报警告"
spec.homepage     = "https://github.com/TangGeV587/testPerson"//主页
 spec.license      = "MIT"//协议
 spec.author             = { "堂哥" => "三刀流索隆" }
  spec.source       =  { :git => "https://github.com/TangGeV587/testPerson.git", :tag => "{spec.version}" }  
/*  **是通配符 匹配目录   子目录也可以匹配
     * 通配符 匹配文件
 */
spec.source_files  = "Classes", "Classes/**/*.{h,m}" //下载的文件

//打标签
git tag 0.0.1
git push --tags

//上传索引文件至远程索引库
//注册trunk
pod trunk register [email protected] 'yutang520'  --verbose //--verbose参数是为了便于输出注册过程中的调试信息
//本地验证
pod lib lint PodName.podspec 

//通过trunk推送podspec文件
pod trunk push hanghangLib.podspec --allow-warnings
fork别人的库,修改podspec文件,s.name 和 文件名保持一致,版本号 和 标签号一致
pod lib lint --use-libraries --allow-warnings --no-clean --verbose 验证 
pod trunk register [[email protected]](mailto:[email protected]) 'xxx' --description='pro' 注册
pod trunk push Podname --allow-warnings --use-libraries --verbose 推送

你可能感兴趣的:(CocoaPods)