CocoaPods库的制作

作者: CoderHG | 来源:发表于2017-02-16 18:40 被阅读223次

目录

  • 具体步骤
  • 私有库的制作(上)
  • 私有库的制作(下)

一、具体步骤

1.1 准备仓库与必要的文件
  • 弄一个仓库,比如PodZHH
  • 创建一个文件夹PodZHH存放有效代码(仅有Public.h与Public.m)
  • 在终端执行pod spec create PodZHH,会生成PodZHH.podspec, 然后编辑这个文档,强烈建议用vim编辑.如何编辑,请百度一下,或者参考PodZHH
  • 在一切正确的情况下,提交到远程仓库.
  • 还有一步是打一个对应的标签, 否则在push到仓库的时候会报错的.
1.2 开始生产库的过程

在这一步,我遇到的坑.CocoaPods的版本是1.1.1.导致一直不能成功,总是提示如下错误:


AbortTrap

升级到1.2.0之后就没有问题了.

以下操作均在终端执行

  • pod lib lint --allow-warnings. 用于验证PodZHH.podspec的正确性
  • pod trunk register 771722918@qq.com PodZHH.podspec . 用于注册PodZHH.podspec.注册成功会给发邮件,点击链接即可.
  • pod trunk me, 用于查看记录
  • pod trunk push PodZHH.podspec , 用于推送到公开的cocoaPods.
    提示如下信息,说明可以使用:

🎉 Congrats

🚀 PodZHH (1.0.0) successfully published
📅 February 16th, 03:34
🌎 https://cocoapods.org/pods/PodZHH
👍 Tell your friends!


但是有一个问题,我执行pod search PodZHH,竟然没有找到.但是能正常的在项目中应用.

二、私有库的制作(上)

上面的方式是属于公有方式,任何开发者都能访问.那么如何制作一个私有的cocoaPod库呢?一般是用于公司内部用的库.其实也很简单,具体步骤如下:

  • 创建一个私有(private)仓库
  • 创建一个文件夹 PodZHHPrivate 存放有效代码
  • 在终端执行pod spec create PodZHHPrivate,会生成PodZHHPrivate.podspec, 然后编辑这个文档.
  • 在一切正确的情况下,提交到远程仓库.
  • 使用 pod lib lint 命令验证是否通过.

这样就 OK 了.是不需要 pod trunk 操作的.

在使用上有什么区别呢?请看下图:

公有与私有在Podfile文件中的使用方法

特别说明:

  • 1 这种方式实际没有添加到任何的 Specs 中,仅仅是一种简单的配置而已。只能说通过这样的配置,可以使用 pod 来管理而已。实际上并不是真正的 Specs。
  • 2 以这种方式弄的私有库,在Podfile中用到私有库的话,是需要私有库的账号与密码才能安装成功的。

三、私有库的制作(下)

接下来是一种比较专业的私有库的制作方法。有自己的 Specs,接下来一步一步的实现。

3.1 创建一个Specs

如同 HGSpecs,就是一个简单的仓库而已。然后 clone 到本地:

pod repo add CoderHG https://github.com/GitHubZHH/HGSpecs.git

这里的 clone 与我们通常的 clone 不一样,其中 CoderHG 是在本地的名字,按照自己的规则,随便命名。具体 clone 到什么地方了呢?可以通过这个命令在终端查看:

pod repo

这个命令会将你本地的所有库都列出来:
类似这样的:


pod repo

到现在为止,我们的一个 Specs 就准备好了。

3.2 添加 pod 到 Specs

现在我以这个项目为例子:Categorys

通过命令clone 到本地:

git clone https://github.com/Summary2017/Categorys.git

clone 结束之后 cd 到这个项目中:


image.png

因为里面已经有一个 HGCategorys_Private.podspec 的文件,所以我就直接将这个在终端执行这个命令:

pod lib lint HGCategorys_Private.podspec --verbose --use-libraries --allow-warnings --no-clean

为了检测一下自己写的 HGCategorys_Private.podspec 文件是否合格。

通过之后, 再进行 push 操作。然后就是这个命令:

pod repo push CoderHG HGCategorys_Private.podspec --verbose --use-libraries --allow-warnings

注意 CoderHG 代表的就是本地的 Specs 文件夹,关联了本地的文件夹的话,到时候会自动的做匹配,不会 push 到其它的 Specs 中去。

看到类似的打印, 就说明成功了:


image.png
3.3 使用

创建一个项目 PodDev, 然后 cd 进入这个项目,执行命令:

pod init

自动生成一个 Podfile 文件, 然后打开 Podfile 文件进行编辑,通常我们这样写就可以了:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'PodDev' do
  pod 'HGCategorys_Private'

end

执行这个命令看一下结果:

pod install

是这样的:


image.png

提示没有找到这个 specification, 其实也是情有可原的,毕竟我们弄的这个库是在我自己的 Specs 中的,默认情况下,install 与 update 的时候是到 https://github.com/CocoaPods/Specs.git 中去找,所以我们需要指定一下,修改为这样的:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

# 公有的 Specs 地址
source 'https://github.com/CocoaPods/Specs.git'
# 私有的 Specs 地址
source 'https://github.com/GitHubZHH/HGSpecs.git'

target 'PodDev' do
  pod 'HGCategorys_Private'

end

在头部指定一下 source 就可以了。

然后再执行 :

pod install

成功!!!

具体详情,请参考:private-cocoapods

相关文章

网友评论

    本文标题:CocoaPods库的制作

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