美文网首页cocoapods+github
CocoaPod 制作私有库(Private Pods)

CocoaPod 制作私有库(Private Pods)

作者: jianshudxw | 来源:发表于2018-11-06 17:20 被阅读0次

前言

官网关于这个知识点已有详细的介绍,但是对我来说:1.知识点比较凌乱 2.英文描述,很多时候不能很好理解其含义。故,参照官网及其他 blog 亲自实践,做个总结。

几个概念

我这里用的版本控制是 GitLab 和 GitHub 类似。

  • Podfile:描述了工程中 Taget 的依赖。客户端使用这个文件使用 Pod 库。
  • Pod library:具体的库,即通常所说的第三方库。
  • Podspec:一个描述文件,描述 Pod library。
  • Spec Repo:存放 Podspec 的仓库。 Repository 注意和 library 区别,刚始看官方英语文档时,没能很好区分这两个词,给后面的理解造成了不是困难。

需要的组件

  • Podfile(必须)
  • Pod library(必须),一堆文件的集合,不一定是 xcode 工程,可以是一个文件,或者文件夹等。一般以 project(github 叫 Repository) 形式放到 GitLab 上,是一个 repo。
  • Podspec(必须)
  • 这三个文件是必须的 调用关系:Podfile 引用 Podspec, Podspec 引用 Pod library。
  • Spec Repo 一般是一个 git 库 只存放 Podspec

现在来实现这些组件。

制作 Pod library 两种方法

  1. 直接在 GitLab 新建一个 project,添加相关文件即可。
  2. 用 CocoaPod 提供的命令 pod lib create MyLib1 一般情况下,第三库都需要demo和测试来验证。cocopods 的这条命令帮我们完成了这些繁琐的工作。 并且帮我们制作了对应的 podspec 参考官网
  • 测试时,如果是 swift 的库 注意给类和方法根据需要添加 publice 关键字
  • 这个命令会 git pod-template 到本地,根据需要删除 git 相关的目录和文件。
  • 一般情况要将 Pod library 上传到 自己的 GitLab。

制作 Podspec 三种方法

  1. 上面的方法2已经产生了podspec
  2. 用 CocoaPod 提供的命令 pod spec create Mylib1.podspec 参考官网
  3. 手动创建一个这样的文件
    注意:
  • soure URL 对应的地址是 pod library的地址。 不是 Spec Repo 的地址
  • tag 的版本号要对应。当然也可以不使用 tag

官方推荐的制作方法

官方推荐的方法步骤最多,但标准规范。

  1. 创建 Spec Repo,一般就是在 GitLab 上新建一个 project,github 叫 Repository。并添加 Mylib1.podspec 等spec文件
  2. Add your Private Repo to your CocoaPods installation
pod repo add REPO_NAME SOURCE_URL
  1. Add your Podspec to your repo
pod repo push REPO_NAME SPEC_NAME.podspec

注意:

  • SOURCE_URL 是 Spec Repo 的地址
  • 如果 spec 文件中使用了tag 确保对应的 Pod library 打了对应的 tag。
  • Spec Repo 的目录结构 一定注意是这样的
.
├── Specs

    └── [SPEC_NAME]

        └── [VERSION]

            └── [SPEC_NAME].podspec

这样 私有库就做好了,但是在使用时,请注意添加

source 'URL_TO_REPOSITORY'
  • URL_TO_REPOSITORY 是 Spec Repo 的地址

根据文档总结的其他方法

  1. 官方推荐的制作方法中的步骤2和步骤3可以不实现。只要在Podfile中加入 source 'URL_TO_REPOSITORY' pod install后会自动实现。可以使用Pod repo list 查看前后变化
  2. 直接在 Podfile 中使用 参考
    pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'
    这种格式
    注意:
  • podspec 文件必须在 Pod library 的根目录。
  1. 也可以这样参考官网
pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'

看 Cocoapod 官网的方法

网站右上角分了4部分,guids 是关注的重点,guids 页面分了四部分,根据需要查找对应部分,然后细读。

总结

细读文档,动手实践发现有很多实现方法

方法 优点
pod 'XXX', :git=>'' 便于直接使用
pod 'XXX',:podspec=>'.podspec' 原生
pod 'XXX',:podspec=>'.json' 便于理解
specs 文件 便于详细配置工程
specs放在本地 便于调试
创建 Specs Reopsitroy 便于集中管理

命令总结

  • pod lib create MyLib1
  • pod spec create Mylib1.podspec
  • Pod repo list
  • pod repo add REPO_NAME SOURCE_URL
  • pod repo push REPO_NAME SPEC_NAME.podspec
  • pod ipc spec JSONKit.podspec > JSONKit.podspec.json
  • pod 'XXX',:podspec=>''
  • pod 'XXX',git=>''
  • pod lib lint

实践过程

也许会遇到的问题

  • dyld: lazy symbol binding failed: Symbol not found:解决方法

实践环境

  • xcode Version 10.0 (10A255)
  • pod --version 1.5.3
  • MacOS High Sierra 10.13.6(17G65)

相关文章

  • CocoaPod 制作私有库(Private Pods)

    前言 官网关于这个知识点已有详细的介绍,但是对我来说:1.知识点比较凌乱 2.英文描述,很多时候不能很好理解其含义...

  • 从0到1构建自己的CocoaPods库

    参考文章: 在CocoaPods上制作自己的库 COCOAPODS创建私有PODS 如何制作自己的CocoaPod...

  • 创建私有Private Pods 笔记

    创建私有Private Pods 笔记 创建私有 spec repo:pod add repo ‘MySpecs’...

  • 创建私有cocoapods

    制作私有pods库 1.升级至最新版本 $sudo gem install cocoa pods //完成注册 邮...

  • 制作CocoaPod依赖库

    随着模块化的盛行,使用cocoaPod制作私有库,将代码模块化解耦已是大项目代码管理的所需。制作私有库,代码模块化...

  • [Cocoapods] 如何发布一个私有Pod

    发布私有CocoaPod Spec 创建private pod主要步骤 创建私有Spec Repo 1、创建git...

  • cocoapod制作私有库repo

    闲来没事,整理好久之前的文档。制作私有库和公共库还是有一定的差别的。甚至还有快速模式,后面给大家展开叙述 1:创建...

  • cocoapods 私有仓库

    pods 私有库分为代码库和索引仓库,私有库主要是配置索引文件,添加到podspec文件到pods索引库中。 首先...

  • 创建私有库

    前言 网上有很多制作私有库的博客,按照大部分博客做下来,本地~/.cocoapod/repos目录结构如下: 如上...

  • 制作cocoapods私有库遇见的问题

    最近在制作cocoapod的私有库,发现 上传, 校验,生成。都没问题但是最后出现了这个问题 你会发现, pod ...

网友评论

    本文标题:CocoaPod 制作私有库(Private Pods)

    本文链接:https://www.haomeiwen.com/subject/gqnuxqtx.html