前言:
该文章默认你已经会用CocoaPods,并且已经安装好CocoaPods。主要说每个创建步骤,按顺序跟着步骤操作即可,如果是详细的讲解推荐这两个文章《CocoaPods 公有仓库的创建(超详细)》,《CocoaPods创建公有和私有Pod库方法总结》。如果安装有问题,不妨看看这个《cocoapods安装中间注意的事项》。
准备工作
1、注册 CocoaPods 账号(如果已注册请忽略这一步)
把命令行行中的email
和user_name
换成你自己的邮箱和用户名
pod trunk register email 'user_name' --verbose
收到邮件激活之后,可以执行下面命令查看你的注册信息
pod trunk me
示例库结构
共享库需要三个必不可少的部分:
- 共享文件夹 (文件夹存放着你要共享的内容, 也就是其他人pod得到的文件);
- LICENSE文件 (默认一般选择MIT,在github创建仓库的时候可以选择);
- 库描述文件.podspec(本库的各项信息描述, 需要提交给CocoaPods, pod通过这个文件查找到你共享的库).
以HDShareTools
为例,当前的项目结构如下图,这个主要是为了对应库描述文件里面涉及到的文件路径,我想上传的是HDShareTools.h
和HDShareTools.m
。
一、创建公有库
1、创建github的仓库,得到库地址和LICENSE文件
如图所示,创建的时候可以选择证书为MIT
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
的版本一致
5、发布到cocoapod
在项目目录下执行下面命令,发布成功命令行会有Congrats的祝贺提示
pod trunk push HDShareTools.podspec
刚发布完可能搜不到,需要等几个小时的缓存。更新库的步骤和发布是一样的。
如果过了很久还没搜到,可以执行下面的命令行刷新一下本地的pod仓库
pod setup
二、创建私有库
私有库和公共库的项目内容创建都是一样的,不一样的是读取的配置不同。比公有库多一步是先创建一个私有的索引库,防止和公共的相互影响
1、配置github,允许使用SSH访问
在github的设置页面,添加SSH Keys,如果不知道怎么生成,可以参考这个文章《GIT经常使用的SSH keys在MAC上的生成和使用》
2、github上面创建一个私有的索引库
例如想要创建的私有索引库的名称是HDPrivateCocoaTools
3、本地通过命令行添加git创建的索引库
执行下面的命令行去在本地添加私有索引库,把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 lint
和pod 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下来慢慢看。
版权属于:东哥笔记 - DongGe.org
本文链接:http://dongge.org/blog/924.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!