pod 使用总结

显示引用的第三方库源码(.m)

通常在工程中是看不到第三方库 .m 文件,如果需要显示的话,需要执行如下命令

IS_SOURCE=1 pod install

develop pod

有时候 pod 中会依赖自有的库,想要在工程中直接调试自有库,可以在 podfile 中这样设置

pod 'name', :path => '../dir name'

此时在 pod 工程中会出现 development pod 文件夹,找到对应的代码修改即可

develop pod 库依赖

主工程中 develop pod 库为 A, 可以将 develop pod 中 库 A 依赖的库 B 再次作为 develop pod ,因此,可以在主工程 Podfile 添加 develop pod 库 B。
原因: 第一个 库 A 中 .podspec 中设置 s.dependency,并未规定这个依赖可以是第三方还是本地。

pod install 与 pod update 区别

使用 pod --help 查看这两条命令的区别,如下


- pod install
- 如果 Podfile.lock 文件不存在(通常第一次下载时),则会读取 Podfile ,下载指定的库,并且生成对应的 Podfile.lock 。
- 如果 Podfile.lock 文件已经存在,则直接读取 .lock 文件内的库信息,并且只会下载 .lock 文件中指定的版本(可以手动修改 .lock 文件中库的版本号, 让 pod 下载指定版本);对于不在 .lock 文件中的库,pod 会根据 Podfile 中指定的版本来安装库文件
- pod update 需要更新库的版本时使用。不管 Podfile.lock 文件是否存在,都会根据 Podfile 文件安装指定版本的库,下载好之后,生成新的 .lock 文件

总结:如何选择 pod installpod update 命令?每个人从共享库中把项目下载下来后,使用 pod install 安装,这样能够保证大家大家使用的第三方框架版本一致;当需要统一升级第三方框架时,每个人统一执行 pod update

.podspec

要想让 pod 管理自己的库,首先需要写 .podspec 文件。
具体参考 私有库创建

Podfile 使用总结

具体参考 Podfile 使用总结

pod 如何安装代码

cocoapods有一个 git 仓库专门保存了 github 上一些有名的开源组件的 podspec 文件。cocoapods会把它clone到你本地的~/.cocoapods/repo/master路径下。当你pod search 一个内容时,就在这个本地目录下进行搜索。
pod install 改为 pod install --verbose之后就可看到这个过程 pod 在做什么了

  1. 首先会更新你的本地中心仓库
    Updating spec repositories当然这个过程会很慢,我们可以忽略它 pod install --no-repo-update
  2. 下载源代码到本地
    cocoapods会预先从github上把代码拉下来放到缓存里,缓存的目录~/Library/Caches/Cocoapods,知道这个是有作用的,方便清理缓存。
    下载到缓存目录后把代码拷贝的你工程目录下的对应目录下:如$projectPath/Pods/ASIHTTPRequest
  3. Generating Pods project
    创建或更新Pods工程,cocoapods会创建一个Pods的project来管理这些代码,Pods工程会把公共组件代码编译为静态库文件.a给你的工程使用。
  4. 配置workspace
    创建一个workspace管理Pods工程和你原本的工程。并通过xcconfig配置文件配置编译参数到你的原本工程中去。

问题与解决方案

  1. cocoapods 更新本地仓库 pod setup/update 无限远程中断,或者出现

Unable to add a source with url https://github.com/CocoaPods/Specs.git named master.
You can try adding it manually in ~/.cocoapods/repos or via pod repo add.

解决方案:通常是网络问题,使用手机 4g 热点更新,速度4M/s,几分钟就搞定了。在这之前用宽带或者 Wi-Fi,连续几十次都失败

参考

  1. Cocoapods代码管理

你可能感兴趣的:(pod 使用总结)