学会使用别人的 Pods 依赖库以后, 你一定对创建自己的依赖库很有兴趣吧, 现在我们一起来制作自己的 Pods 依赖库.
1. 创建自己的 github 仓库
上图中标识出了 6 处地方
Repository name: 仓库名称, 这里写上我们的依赖库名字 HJGame , 必填.
Description: 仓库的描述信息, 可选.
Public or Private: 仓库的公开性, 开源的话选 Public . 如果是公司内部使用的话这里推荐大家使用私有的仓库, 但是 github 的私有仓库是要收费的 $7/month (壕请无视 - -!). 大部分公司都是有自己的 git 服务器, 不过一般只能在公司内网使用, 或者可以选择 Gitlab , Coding , Bitbucket 任意一种.
Initialize: 是否默认创建一个 README 文档, 一个完整的库都会有这个说明文档, 这里最好勾选一下. 不过如果忘记的话也不要紧, 后面手动创建也是可以的.
.gitignore: 忽略项文件, 记录一些想忽略的文件类型, 凡是该文件包含的文件类型, git 都不会将其纳入到版本管理中. 看需要选择就行.
license: 正规的仓库都有一个 license 文件, Pods 依赖库对这个文件要求比较严格, 需要有这个文件. 这里最好让 github 自动创建一个, 不过后续手动创建也行. 我们这次先使用 MIT 类型的 license.
上面各项根据大家需要填写完毕后, 点击 Create repository 按钮即可, 生成仓库后, 复制仓库地址:
2.clone 仓库到本地
打开终端窗口 cd/Desktop ;clone https://github.com/JJloveLL/HJGame.git 下载完成后 通过 pwd 命令查看当前的文件结构如下:
其实还有一个隐藏的 .git 文件, 后续我们的所有文件都在这个目录底下进行.
3. 向本地仓库中添加创建 Pods 依赖库所需的文件
1) 把需要添加 Pods 依赖库的文件, 都移动到当前桌面 HJGame 文件夹里;
2) 在当前桌面 HJGame 文件路劲下, 创建. podspec 文件:
创建这个文件有两种途径:
复制已有的 podspec 文件然后修改对应的参数.
执行命令行创建.
我们使用命令行:
pod spec create HJGame
创建出
HJGame
.podspec 文件后, 我们打开可以发现, 该文件是 ruby 文件, 里面有很多的内容, 但是大多数都是我们不需要的, 所以我们只需要根据项目的情况保留关键的一些内容就行:
Pod::Spec.new do |s|
s.name = "HJGame" #名字
s.version = "1.0.0" #版本号
s.summary = "游戏登录 SDK 添加支持 pod 添加" #简短的介绍
s.description = <<-DESC
HJGame 游戏登录 SDK, 添加支持 pod
DESC
s.homepage = "https://github.com/JJloveLL/HJGame" #项目的链接
s.license = "MIT" #开源协议
# s.license = {:type => "MIT", :file => "FILE_LICENSE" }
s.author = {"JJloveLL" => "max_dengjiajun@163.com" } #作者
# Or just: s.author = "JJloveLL"
# s.authors = {"JJloveLL" => "max_dengjiajun@163.com" }
# s.social_media_url = "http://twitter.com/JJloveLL"
s.platform = :ios
s.platform = :ios, "8.0"
s.requires_arc = true #是否使用 ARC
# When using multiple platforms
# s.watchos.deployment_target = "2.0"
# s.tvos.deployment_target = "9.0"
# s.source = {:git => "https://github.com/JJloveLL/HJGame.git" }
## 这里不支持 ssh 的地址, 只支持 HTTP 和 HTTPS, 最好使用 HTTPS
## 正常情况下我们会使用稳定的 tag 版本来访问, 如果是在开发测试的时候, 不需要发布 release 版本, 直接指向 git 地址使用
## 待测试通过完成后我们再发布指定 release 版本, 使用如下方式
s.source = {:git => "https://github.com/JJloveLL/HJGame.git", :tag => "#{s.version}" }
s.source_files = "HJGame/**/*" #直接这样写 添加所有的文件
#s.source_files = "HJGame/**/*.h" #如果有多级目录, 一定要逐级添加.
#s.source_files = "HJGame/**/*.a"
#s.exclude_files = "Classes/Exclude"
# s.public_header_files = "Classes/**/*.h"
#s.resource = "git icon_close@3x.png"
#s.resources = "Resource/*.png" #资源文件
# s.preserve_paths = "FilesToSave", "MoreFilesToSave"
s.framework = "SystemConfiguration"
# s.frameworks = 'UIKit', 'Foundation' #所需的 framework, 多个用逗号隔开
s.module_name = 'HJGame' #模块名称
# s.library = "iconv"
# s.libraries = "iconv", "xml2"
# s.xcconfig = {"HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# s.dependency "JSONKit", "~> 1.4" #依赖关系, 该项目所依赖的其他库, 如果有多个可以写多个 s.dependency
end
添加完成后保存.
以上所有的步骤都是准备阶段......
现在进去项目阶段
执行命令:
git tag 1.0.0 (版本号)
git add .
git commit -m "提交注释"
git push origin 1.0.0 (tag 版本号)
然后验证 podspec 文件的合法性:
pod spec lint HJGame.podspec (验证合法性)
验证通过如下状态:
但是此处验证一般有两处坑点:(podspec 文件填的不合法)
错误如下:
验证通过后执行命令:
git add -A
git push origin master
同步到 git 仓库里.
通过以上步骤创建 Pod 库还只能供自己使用, 下面会继续讲解如何将其提交到 CocoaPods/Specs 代码库中, 让其他人也可以通过 pod install 安装我们的开源库.
CocoaPods Trunk 发布自己的 Pods
在 cocoapods 使用了 trunk 之后, CocoaPods 需要 0.33 以上版本, 用 pod --version 查看版本, 如果版本低, 需要更新.
注册 Trunk
1,$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air' ($ pod trunk register 自己邮件地址 '注册用户名' --description='描述')
大家在注册时需要替换成自己的邮箱和用户名, 一切顺利的话就会受到一份邮件, 点击邮件中的链接后验证一下:
验证过后通过 pod trunk me 自己的 cocopods 注册的信息
当然, 如果你的 pod 是由多人维护的, 你也可以添加其他维护者:
$ pod trunk add-owner ARAnalytics kyle@cocoapods.org
上面的工作完成之后, 我们就可以开始 trunk push 了, 执行命令:
pod trunk push
等待几分钟 我们项目就发布到 cocopods 上了, 别人就可以添加使用我们开源库了.
至此我们整个制作自己的开源库的过程就完成了, 以后有新版本只需要修改工程根目录下的 podspec 文件就行了, 然后重新执行 pod trunk push 命令.
最后
最后对这个过程做个总结:
1. 开源库发布之后, 需要打上 tag
2. 进入到项目根目录下, 创建 podspec 文件
pod spec create PodName
3. 编辑 podspec 文件中的相关信息, 有两个比较重要的地方 s.source 和 s.source_files, 可以验证是否有误:
pod spec lint PodName.podspec
4. 注册 pod trunk
$ pod trunk register orta@cocoapods.org 'Eric_jun' --description='macbook pro'
5. 发布到 pod trunk
pod trunk push [NAME.podspec]
该命令在包含有. podspec 文件的目录下执行
6. 更新 pod 库
pod setup
如果 pod trunk push 成功后无法 pod search 到自己的库, 可执行该命令.
来源: https://www.cnblogs.com/Max-djj/p/8378887.html