前言:

该文章默认你已经会用CocoaPods,并且已经安装好CocoaPods。主要说每个创建步骤,按顺序跟着步骤操作即可,如果是详细的讲解推荐这两个文章《CocoaPods 公有仓库的创建(超详细)》,《CocoaPods创建公有和私有Pod库方法总结》。如果安装有问题,不妨看看这个《cocoapods安装中间注意的事项》。

准备工作

1、注册 CocoaPods 账号(如果已注册请忽略这一步)

把命令行行中的emailuser_name 换成你自己的邮箱和用户名

pod trunk register email 'user_name' --verbose

收到邮件激活之后,可以执行下面命令查看你的注册信息

pod trunk me

示例库结构

共享库需要三个必不可少的部分:

  1. 共享文件夹 (文件夹存放着你要共享的内容, 也就是其他人pod得到的文件);
  2. LICENSE文件 (默认一般选择MIT,在github创建仓库的时候可以选择);
  3. 库描述文件.podspec(本库的各项信息描述, 需要提交给CocoaPods, pod通过这个文件查找到你共享的库).

HDShareTools为例,当前的项目结构如下图,这个主要是为了对应库描述文件里面涉及到的文件路径,我想上传的是HDShareTools.hHDShareTools.m

屏幕快照 2019-03-20 下午5.22.21.png

一、创建公有库

1、创建github的仓库,得到库地址和LICENSE文件

如图所示,创建的时候可以选择证书为MIT

Jietu20190320-172557.png

2、可以手动创建一个纯文本文件,命名为HDShareTools.podspec

Pod::Spec.new do |s|
s.name = 'HDShareTools'
s.version = '1.0.0'
s.license= { :type => "MIT", :file => "LICENSE" }
s.summary = 'HDShareTools,封装sharesdk和系统分享'
s.homepage = 'https://github.com/DamonHu/HDShareTools'
s.authors = { 'DamonHu' => 'dong765@qq.com' }
s.source = { :git => "https://github.com/DamonHu/HDShareTools.git", :tag => s.version}
s.requires_arc = true
s.ios.deployment_target = '9.0'
s.source_files = "HDShareTools/HDShareTools/*.{h,m}"
s.frameworks = 'UIKit','Foundation'
end

如果还要有依赖其他库, 加上 s.dependency '库名' 即可,例如

s.dependency 'AFNetworking', '~>3.1.0'
s.dependency 'SVProgressHUD'

如果还想上传其他文件,在s.source_files后面根据路径追加即可,类似于s.frameworks的格式。

这个是最简单的创建.podspec的方案,当然你可以执行下面的命令创建完整版,但是配置项可能会让你头疼

pod spec create HDShareTools

3、检查.podspec配置文件是否可用

检查命令可以加上--allow-warnings忽略警告,也可以不加,不加的话这个忽略警告的,如果有警告的话会提示,这个看个人选择。

pod lib lint --allow-warnings

当看到passed validation就说明是正确的

4、将项目代码上传到github,发布release版本

将项目代码上传到github,同时发布一个release版本和配置文件里面写的s.version的版本一致

屏幕快照 2019-03-20 下午5.48.27.png

5、发布到cocoapod

在项目目录下执行下面命令,发布成功命令行会有Congrats的祝贺提示

pod trunk push HDShareTools.podspec

刚发布完可能搜不到,需要等几个小时的缓存。更新库的步骤和发布是一样的。

如果过了很久还没搜到,可以执行下面的命令行刷新一下本地的pod仓库

pod setup

二、创建私有库

私有库和公共库的项目内容创建都是一样的,不一样的是读取的配置不同。比公有库多一步是先创建一个私有的索引库,防止和公共的相互影响

1、配置github,允许使用SSH访问

在github的设置页面,添加SSH Keys,如果不知道怎么生成,可以参考这个文章《GIT经常使用的SSH keys在MAC上的生成和使用

Jietu20190320-180721.png

2、github上面创建一个私有的索引库

例如想要创建的私有索引库的名称是HDPrivateCocoaTools

Jietu20190320-180341.png

3、本地通过命令行添加git创建的索引库

屏幕快照 2019-03-20 下午6.10.39.png

执行下面的命令行去在本地添加私有索引库,把GIT的SSH地址替换成你的刚才创建的私有索引库的地址

pod repo add HDPrivateCocoaTools GIT的SSH地址

添加成功后可以在本地的/.cocoapods/repos/目录下可以看到官方的master和刚刚加入的HDPrivateCocoaTools这两个索引库分支。

4、创建私有库

重复创建公有库的1、2、3、4步骤,只是在github创建HDShareTools这个项目的时候,库类型选择private私有。

执行第3步的pod lib lint检验配置是否正确的时候,也要像下面写的区分:如果私有库没有依赖其他公开库,就执行上面公有库的第3步即可。如果依赖了其他公有库,则需要添加下面所说的--use-libraries--sources这两个后缀

5、将私有库添加到私有索引库

1. 私有库没有依赖其他公开库

私有库HDShareTools已经创建好,接下来就是要添加到上面刚创建的私有的索引库HDPrivateCocoaTools中去。执行下面命令行即可

pod repo push HDPrivateCocoaTools HDShareTools.podspec

这时候会让你输入之前添加到github后台的那个秘钥的密码,你输入即可更新,执行这一步会同时更新你本地的私有索引库,同时也会更新github的私有索引库内容。

2. 私有库依赖了其他公开库

如果你这个私有库依赖了其他的公有库,在执行pod lib lintpod repo push会报下面这个错

Encountered an unknown error (The 'Pods-App' target has transitive dependencies that include static binaries: ***

这时候你执行这两个命令的时候,后面都要加上--use-libraries--sources,这个source一个是你的私有索引库的ssh地址,一个是cocoapods的官方公开索引库地址。pod lib lint的命令也是一样的,需要加上这两个变量。

例如:

pod repo push HDPrivateCocoaTools HDShareTools.podspec --sources='git@github.com:DamonHu/HDPrivateCocoaTools.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings

6、私有库的使用

进行完第五步私有库已经完成了,使用的私有库和公有库的区别就是:使用私有库需要在项目的Podfile文件内容前添加下面内容去指定网上的私有库和公有库地址。其他使用是一样的。

source 'git@github.com:DamonHu/HDPrivateCocoaTools.git'
source 'https://github.com/CocoaPods/Specs.git'

结束

最后特别这两篇文章《CocoaPods 公有仓库的创建(超详细)》,《CocoaPods创建公有和私有Pod库方法总结》,如果不赶时间,可以mark下来慢慢看。


☟☟可点击下方广告支持一下☟☟

最后修改:2019 年 03 月 21 日
请我喝杯可乐,请随意打赏: ☞已打赏列表