Cocoapods基本使用

一 Cocoapods安装

  1. 查看数据源 : gem sources
    删除数据源 : gem sources --remove https://rubygems.org/
    添加数据源 : gem sources -a https://ruby.taobao.org/

  2. 安装Cocoapods : sudo gem install -n /usr/local/bin cocoapods
    -n : 代表安装目标
    cocoapods默认安装在usr/bin/目录下, 现在苹果不对用户开放这个目录了,所以,可以安装在/usr/local/bin这个目录下

  3. 卸载Cocoapods : sudo gem uninstall cocoapods

二 Cocoapods的简单使用

2.1 CocoaPods 工作流程

在这里插入图片描述

2.2 Cocoapods的重要路径

2.2.1 索引缓存路径

  • ~/Library/Caches/CocoaPods/
  • 如果发现框架信息本地已经缓存, 但是就是无法搜索框架, 可以更新一下远程私有库, 然后再删除这个索引文件, 重新生成
    • 更新私有库 : pod repo update
    • rm ~/Library/Caches/CocoaPods/search_index.json
    • pod setup

2.2.2 pod命令安装路径

  • /usr/local/bin

2.2.3 pod 框架索引信息缓存路径

  • /Users/电脑名/.cocoapods/repos/master/Specs

三 常见文件说明

3.1 Podfile

  • 框架描述文件
  • 创建命令 : pod init

3.2 Podfile.lock

  • 记录着上一次下载的框架最新版本

3.3 pod install 和 pod update 区别

pod install

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

update

  • 不管Podfile.lock是否存在, 都会读取Podfile文件的的框架信息去下载
    • 下载好之后, 再根据下载好的框架信息, 生成Podfile.lock文件

主要区别在于, Podfile文件内的框架信息, 版本描述没有指定具体版本, update就会下载最近版本的, 而install会根据Podfile.lock之前记录的版本下载, 好处在于多人开发能保持版本一致

3.4 多人开发注意

  • 上传到共享库的只有图示的四个文件!!

在这里插入图片描述

四 制作 CocoaPods 库

  1. 创建框架描述信息podspec;
  2. 托管框架源码到 Git;
  3. 上传框架描述信息到 https://github.com/CocoaPods/Specs;
  4. 更新本地索引库
  5. 命令行 pod install ,将框架集成到项目中;

现在开始动手吧!首先在桌面新建一个 testLib 目录,在该目录下新建一个 Classes 目录,用来存放框架源码,然后将 testLib 托管到 Git。

你可以给 Classes 目录任意的命名,Classes 只是一种约定俗称的命名。

4.1 创建框架描述信息podspec

pod spec 命令用于创建框架的描述信息文件,文档如下:

https://guides.cocoapods.org/syntax/podspec.html

现在在 testLib 目录下执行:

pod spec create ADPodDemo01
  • 注意 创建之前先查询是否已经存在testLib的库, 如果存在换成别的名字

目录下会创建一个 testLib.podspec 文件,然后编辑这个文件,主要有以下几个字段:

  • version:这个 spec 映射的版本,保证 Git 的 releases 与此对应;
  • homepage:项目主页;
  • source:框架源代码的托管地址;
  • tag:与 version 对应;
  • source_files:框架源代码的目录、文件、文件类型等规则;

验证podspec是否正确

pod lib lint

4.2 托管框架源码到git

1. 初始化本地代码 : git init
2. 添加本地代码与远程仓库的关联 : git remote add origin <url>
3. 提交代码到暂缓区 : git add .
4. 提交代码到本地分支 : git commit -m x
5. 提交本地标签 : git tag 0.0.1
6. 提交本地分支代码和标签到远程仓库 : git push origin master --tags

4.3 上传框架描述信息

根据上面的步骤,现在你需要将生成的 testLib.podspec 文件上传到远程索引库,在此之前,你需要注册一个 Trunk 账号,文档如下:

https://guides.cocoapods.org/making/getting-setup-with-trunk.html

现在执行下面的命令,记得修改邮箱昵称描述等:

pod trunk register <email> '<username>' --description='mac desc'

你的邮箱会收到一封邮件,打开邮件里面的链接,会有类似 ACE, YOU'RE SET UP. 的提示,现在回到终端。

pod lib lint

检查 testLib.podspec 的合法性,根据错误提示修复问题,当显示 passed validation 后,执行下面的命令, 上传podspec描述文件

pod trunk push ADPodDemo01.podspec

提示信息如下:

 ?  ADPodDemo01 (0.0.1) successfully published
 ?  August 21st, 20:57
 ?  https://cocoapods.org/pods/ADPodDemo01
 ?  Tell your friends!

4.4 更新本地索引库

搜索查询是否存在

pod search ADPodDemo01

结果没有搜索到

[!] Unable to find a pod with name, author, summary, or description matching `ADPodDemo01`

解决方案

  1. 删除本地索引文件 search_index.json
rm ~/Library/Caches/CocoaPods/search_index.json
  1. 直接搜索,就会更新本地索引库以及创建本地索引文件, 可能需要一段时间
pod search ADPodDemo01 

删除远程索引库

有时候如果提交有问题,可以执行一下命令删除:

// 直接废去这个pod
pod trunk deprecate ADPodDemo01
// 删除这个pod的某个版本
pod trunk delete ADPodDemo01 0.0.1
  • 注意: 这两个指令执行完成之后,需要更新本地索引库才行, 不然, 依然可以搜到对应的库文件

仓库的相关指令

  1. 查看第三方框架仓库源
pod repo
  1. 移除仓库源
pod repo remove master
  1. 添加仓库源
pod repo add master http://git.oschina.net/akuandev/Specs.git
  1. 初始化(下载服务器中所有第三方框架信息, 缓存到电脑本地)
pod setup

五 Pod 相关报错总结

5.1 pod lib lint 报错问题总结

  1. RuntimeError - can’t modify frozen String在这里插入图片描述- 解决方式
    在这里插入图片描述

5.2 pod install

  • NameError - uninitialized constant Concurrent::Promises
    Did you mean? Concurrent::Promise
    在这里插入图片描述
  • 解决办法
gem install concurrent-ruby or gem update concurrent-ruby
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值