Swift发布库到CocoaPod

字数 512阅读 161

缘由

  1. 公司需求,发布SDK
  2. 开源精神,让更多人的人使用你优秀的代码

建立工程,编写类库

  1. 新建一个iOS或其他platform的demo工程,通常Single View App即可
  2. 在demo工程新建target, file -> new -> target,选择创建Cocoa Touch Framework,该target用于包含你所要开源的所有库,假设取名为framework
  3. 在framework的target文件夹里面添加自己的开源代码,注意想要暴露出来的类、方法、属性均需要使用public或者open等修饰
  4. 现在,在demo中可以通过import framework来引用库,测试已写好的功能,测试完成后,就可以准备发布到CocoaPod了

发布到CocoaPod流程

  1. 将代码提交到GitHub,并打上tag即release版本,该tag必须和pod配置文件的tag一致,否则push到pod会报错
  2. 创建配置文件xxx.podspec,xxx为发布到pod的名称,取名时先到pod搜索下是否已存在相同的库名,因为是唯一的,如果已存在则需要定义其他名称,命令如下:
pod spec create xxx
  1. 修改配置文件,可以在GitHub上参考其他项目是怎么写的
Pod::Spec.new do |s|
    s.name         = "KJTouchIdManager"
  s.module_name  = "TouchIdManager"
  s.version      = "0.0.1"
  s.summary      = "TouchId/FaceId manager on iOS 8 or later."
  s.description  = "An easy way to use TouchId or FaceId, support iOS 8 or later"
  s.homepage     = "https://github.com/Smiacter/TouchIdManager"
  s.license      = "MIT"
  s.author             = { "Smiacter" => "Smiacter@gmail.com" }
  s.platform     = :ios
  s.platform     = :ios, "8.0"
  s.swift_version = "4.1"
  s.source       = { :git => "https://github.com/Smiacter/TouchIdManager.git", :tag => "#{s.version}" }
  s.source_files  = "TouchIdManager/*.swift"
end
- name -> pod库的名称
- mudule_name -> 引用的module名称即工程创建的target名,如果和上述的name不一致的话需要指定,如果一样可以省略
- version -> 版本,和GitHub代码的tag一致
- summary -> pod库的简单介绍
- description -> pod库的详细描述,它的长度一定要比summary长,不要会有警告
- homepage -> GitHub访问路径
- license -> 遵循的授权版本
- author -> 作者,一般是自动生成
- platform -> 操作系统及最低支持版本,可指iOS/tvOS/watchOS/tvOS
- swift_version -> 如果用的是Swift,指定你使用的版本,因为pod在进行代码检查时的版本可能与你的不一致
- source -> GitHub代码仓库地址,请copy使用HTTPS的那个git地址,使用SSL的需要依赖环境,校验无法通过
- source_files -> 库的有用文件,它会告诉pod需要克隆哪些文件,*代表任意文件
- 其他,生成的.podspec文件包含了很多其他参数,可以根据自己的需求打开某些注释,打造属于你自己的podspec
  1. 注册trunk,pod是通过trunk来发布的
pod trunk register "email address" "user name" --description = "optional"
  1. 验证库代码和podspec的有效性,查看代码、配置文件是否有误
pod spec lint xxx.podspec

如果出现错误,根据相关提示进行修改后再验证,提示一般都比较易懂,如果实在看不懂就自行搜索进行修改。当出现xxx.podspec passed validation.则说明验证通过。

  1. 真正发布(push)到pod仓库, allow-warning是可选的
pod trunk push xxx.podspec --allow-warning

如果出现Congrats则说明创建你自己的pod库成功,之后就可以使用pod进行使用该库了

------------------------------------------------------------
 🎉  Congrats

 🚀  xxx (0.0.1) successfully published
 📅  September 13th, 20:17
 🌎  https://cocoapods.org/pods/xxx
 👍  Tell your friends!
------------------------------------------------------------

写在结尾

这就是自建pod库的基本流程,开源,让世界更美好,让自己更优秀。

推荐阅读更多精彩内容