如何将自己的库上传到cocoapods

假设到这里你已经将你的代码上传了github上,如果没有的话就先别看了。在这里我会用自己的项目JTForm来讲解一下整个过程

生成及修改配置文件

在创建之前,你需要将你的代码提交到github上,并且为它生成一个相应版本号的tag

pod trunk register [EMAIL] [USERNAME]


当你运行pod trunk me后,发现不是如上图的结果,那么你可能需要重新登陆或者注册,也就是运行如下的命令
pod trunk register [EMAIL] [USERNAME],运行成功之后,你填的邮箱会收到一封邮件,点进去点击里面的链接就算是登录成功了。

登录

pod spec create JTForm

cd到项目中,在readme.md的位置使用pod spec create JTForm。这个命令会生成一个JTForm.podspec的文件。

编辑JTForm.podspec

你可以直接参考或者复制别的项目podspec文件里面的内容,仅需修改一些信息。你也可以看官方文档自己编辑。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Pod::Spec.new do |s|

s.name = "JTForm"
s.version = "0.0.1"
s.summary = "简单快速的创建复杂且流畅的表单,XLForm与Texture相结合"
s.homepage = "https://github.com/kikido/JTForm"
s.license = { :type => "MIT", }
s.author = { "kikido" => "kikido1992@gmail.com" }
s.source = { :git => "https://github.com/kikido/JTForm.git", :tag => s.version.to_s }
s.source_files = "JTForm", "JTForm/**/*.{h,m}"
s.resource = 'JTForm/JTForm.bundle'
s.dependency "SDWebImage", "~> 4.4.6"
s.dependency "Texture", '~> 2.8'
s.requires_arc = true
s.ios.deployment_target = '9.0'
s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SRCROOT)/SDWebImage" }

# s.public_header_files = "Classes/**/*.h"
end

pod spec lint

验证你编辑的podspec文件是否符合规范,如果出现error的话是不可以的,warning的话是可以的,可以使用命令pod spec lint --allow-warnings来忽略所有warnings。

下面是我验证时出现的问题:

验证出错

原因是因为podspec文件里面s.ios.deployment_target = '8.0',而Texture仅支持iOS9.0以上的版本,所以我这里做了以下的修改:s.ios.deployment_target = '9.0'

重新验证,出现了以下错误:

错误1
错误2

一开始我以为我的.h直接引用了第三方的文件导致,后来才发现是因为没有暴露SDWebImage的头文件。解决办法:在podspec文件修改配置s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SRCROOT)/SDWebImage" }
答案来源:关于组件化使用私有Pods的一些记录

重新编译,通过

pod trunk push –allow-warnings

使用pod trunk push --allow-warnings命令将自己的库发布到cocoapods上,大概8分钟左上

上传成功

pod setup

上传成功之后,使用pod search无法搜到自己的库的话,你可以这样做:

  1. 命令rm ~/Library/Caches/CocoaPods/search_index.json

完成后重新使用pod search搜索

版本升级

当你需要升级自己库版本的时候,你可以这样做:

  1. 修改podspec中s.version的版本号
  2. 提交到git,并打上相应版本号的tag
  3. 进入到podspec目录下,使用命令pod trunk push --allow-warnings更新库

更换版本

如果你对当前版本的库不满意,但是又不想升级版本号。你可以这样做:

  1. 去掉git上相应版本号的tag
  2. git上传新的内容
  3. 上传之后打上相应版本号的tag
作者

千行

发布于

2019-05-15

更新于

2022-10-21

许可协议

评论