CocoaPods 创建公有 pod 库

1、注册CocoaPods账户信息

创建一个开源pod库,需要注册CocoaPods

终端执行:$ pod trunk register 邮箱地址 '用户名' --verbose

这里我们一般使用github邮箱和用户名, 然后在你的邮箱中会收到确认邮件, 在浏览器中点击链接确认即注册成功;

CocoaPods 创建公有 pod 库_第1张图片
注册成功

查看自己的注册信息,以后当你有了自己的开源Pod库,也可以用此方式随时查看自己发布过的Pods

终端执行  $ pod trunk me
CocoaPods 创建公有 pod 库_第2张图片
注册信息

2、创建Git仓库

a. 在GitHub上创建一个公开项目,项目中必须包含这几个文件:

A. 共享文件夹:文件夹存放着你要共享的内容, 也就是其他人pod得到的文件, .podspec文件中的source_files需要指定此文件路径及文件类型;
B. LICENSE:开源许可证,默认一般选择MIT;
C.README.md:仓库说明
D. 库描述文件.podspec:本库的各项信息描述, 需要提交给CocoaPods, pod通过这个文件查找到你共享的库, .podspec文件的格式见第4点.

b. 终端命令创建一个全新的工程,具体参考:Using Pod Lib Create

终端执行  $ pod lib create 库名

然后可以使用SourceTree等工具上传你的代码到公共仓库, 关于如何使用命令行上传代码到远端仓库, 可以移步:iOS开发使用Git那些事.

3、创建*.podspec文件

.podspec是用Ruby的配置文件,描述你项目的信息
在你的仓库目录下:

终端执行 $ pod spec create BitautoTech

这时就会在你的仓库下生成BitautoTech.podspec文件

CocoaPods 创建公有 pod 库_第3张图片
BitautoTech.podspec

4、编辑*.podspec文件

Pod::Spec.new do |s|
  s.name         = "BitautoTech" # 项目名称
  s.version      = "0.0.1"       # 版本号 与 你仓库的 标签号 对应
  s.summary      = "A short description of BitautoTech." # 项目简介
  s.description  = <<-DESC
  这中间写描述内容
               DESC
  s.homepage     = "https://github.com/huipengo/BitautoTech" # 你的主页
  s.license      = "MIT" # 开源证书
  s.author       = { "huipeng" => "[email protected]" } # 作者信息
  s.source       = { :git => "https://github.com/huipengo/BitautoTech", :tag => "#{s.version}" } # 你的仓库地址,不能用SSH地址
  s.source_files  = "BitautoTech", "BitautoTech/**/*.{h,m}" # 你代码的位置, BitautoTech/**/*.{h,m} 表示 ** 文件夹下所有的.h和.m文件
  s.exclude_files = "BitautoTech/BitautoTechTests", "BitautoTech/BitautoTechUITests"
  s.requires_arc = true # 是否启用ARC
  s.platform     = :ios, "8.0" # 平台及支持的最低版本
  s.frameworks = "UIKit", "Foundation" # 支持的框架
  # s.dependency "JSONKit", "~> 1.4" # 依赖库

end

验证 .podspec 文件的格式是否正确,cd*.podspec 文件所在的目录下

终端执行 $ pod lib lint
或者执行 $ pod lib lint BitautoTech.podspec

验证成功会出现:

-> BitautoTech (0.0.1)

BitautoTech passed validation.

如果出现ERROR,需要检查所填写项的正确性,如果出现WARN,如下:

-> BitautoTech (0.0.1)
- WARN  | description: The description is shorter than the summary.

[!] BitautoTech did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
You can use the `--no-clean` option to inspect any issue.

提示我们需要加--allow-warnings这么一句话,命令改为:

终端执行:
pod lib lint --allow-warnings
pod lib lint BitautoTech.podspec --allow-warnings
pod lib lint --allow-warnings --use-libraries

5、给仓库打tag

标签相当于将你的仓库的一个压缩包,用于稳定存储当前版本。标签号与你在 s.version = "0.0.1" 的版本号一致 0.0.1

创建标签
终端执行 $ git tag -a 0.0.1 -m '标签说明' 
推送到远程
终端执行 $ git push origin --tags

6、发布 *.podspec

在仓库目录下执行

终端执行 $ pod trunk push BitautoTech.podspec

将你的 *.podspec 发布到公有的 speecs 上,这一步操作包括:

a.更新本地 pods~/.cocoaPods.repo/master
b.验证*.podspec格式是否正确
c.将 *.podspec 文件转成 JSON 格式
d.对 master 仓库进行合并、提交

成功后会出现Congrats信息如下:

CocoaPods 创建公有 pod 库_第4张图片
Congrats

7、使用仓库

发布到Cocoapods后,在终端更新本地pods仓库信息

终端执行 $ pod setup
查询仓库 $ pod search BitautoTech

如果search出现以下错误:

[!] Unable to find a pod with name, author, summary, or description matching `BitautoTech`

删除 cocoapods 的索引,然后重新 search

终端执行 $ rm ~/Library/Caches/CocoaPods/search_index.json
查询仓库 $ pod search BitautoTech
终端输出:Creating search index for spec repo 'artsy'.. Done!
会触发cocoapods重新拉这个索引文件

8、更新维护

  • 更新 *.podspec 中的版本号
  • 打上标签推送流程
  • pod trunk push *.podspec 推送到pods仓库

更新后你就可以在 CocoaPods Master Repo 仓库上看到自己的提交记录了

9、遇到的坑

  • ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.

*.podspec 文件里面设置的 s.ios.deployment_target = '8.0',最低支持版本为 8.0,而在代码里面用到了 xib,里面勾了 Use Safe Area Layout Guides,项目支持最低版本为 9.0Build 不会报错,执行 pod lib lint *.podspecxcodebuild: Returned an unsuccessful exit code.,原来是 Use Safe Area Layout Guides 的问题,修改 *.podspec 文件 s.ios.deployment_target = '9.0' 修复了这个问题

  • xibUse Safe Area Layout Guides error
    修改 xibBuilds for 选项 改为 Deployment Target (9.0)

参考链接:
CocoaPods创建公有和私有Pod库方法总结
CocoaPods 公有仓库的创建
CocoaPods应用篇之搭建并发布自己的私有库
podspec文件解析
cocoapods系列教程---spec文件

你可能感兴趣的:(CocoaPods 创建公有 pod 库)