由于经常发布SDK到cocoapods上面,遇到了一些坑,所以在这里和大家分享一下,尽量避免大家重复掉坑。其实把文件上传到cocoapods拢共分三步,第一步配置SDK文件,第二部上传文件到GitHub上,第三步上传文件到cocoapods。完美!下面我们来详细介绍下详细步骤:
1、配置SDK相应的文件
a:配置trs_ta_sdk.podspec文件
这个是重中之重,一旦配置出现错误那么就会报各种错,所以这里一定要细心。下图是SDK的整体文件:
对trs_ta_sdk.podspec文件进行配置:
Pod::Spec.new do |s|
#名称
s.name = 'trs_ta_sdk'
#版本 这里的版本号一定要与我们提交到GitHub上的tag一致,否则无法上传成功
s.version = '1.5.7'
#许可证
s.license = 'MIT'
#项目简介
s.summary = 'A delightful collection of SDK 1.5.7'
#项目主页地址
s.homepage = 'https://github.com/caiqingchong/SDK-Framework'
#项目的地址 (注意这里的tag位置,可以自己写也可以直接用s.version,但是与s.version一定要统一)
s.source = { :git => 'https://github.com/caiqingchong/SDK-Framework.git', :tag => s.version }
#支持arc
s.requires_arc = true
#支持最小系统版本
s.platform = :ios,'7.0'
#依赖的库 这里自行填写,不要遗漏
s.frameworks = 'UIKit', 'Foundation','CoreTelephony'
#依赖库
//s.libraries = 'sqlite3','icucore','z'
#作者
s.author = { '张凯' => '2273034940@qq.com'}
#你的GitHub地址
s.social_media_url = 'https://github.com/caiqingchong'
#需要包含的源文件
s.source_files = 'trs_ta_sdk/trs_ta_sdk.framework/Headers/*.{h}'
#你的SDK路径
s.vendored_frameworks = 'trs_ta_sdk/trs_ta_sdk.framework'
#SDK头文件路径
s.public_header_files = 'trs_ta_sdk/trs_ta_sdk.framework/Headers/TRSRequest.h','trs_ta_sdk/trs_ta_sdk.framework/Headers/EventInfo.h','trs_ta_sdk/trs_ta_sdk.framework/Headers/TRSOperationInfo.h'
s.dependency 'IKNetwork'
s.dependency 'IKCrypt'
s.dependency 'Masonry'
s.dependency 'YYText'
s.dependency 'IKLog'
end
至此,我们已经将最重要的文件配置完毕,下一步上传SDK到GitHUb中。
如果有依赖其他的第三方库,就直接使用s.dependency 'AFNetworking'。
2、上传文件GitHub
a:具体的上传步骤想必各位老司机早已烂熟于胸,就不一一写出来了。
自行编辑README.md。比如使用方法、版本号、改动等
$ git add .
$ git commit -m 'sdk-1.5.7'
$ git push -u origin master
创建SDK相应的tag
$ git tag 1.5.7
提交tag到GitHub
$ git push origin --tags
此时我们的工作已经完成了99%,剩下的就是上传cocoapods了。
3、将文件发布到cocoapods
检查podspec文件
$ pod spec lint trs_ta_sdk.podspec
上传项目到cocoapods中
$ pod trunk push trs_ta_sdk.podspec
然后,稍作等待就会出现成功的标识。如下图:
然后,我们搜索上传的SDK,如下图:
4、将文件从cocoapods中删除
这里我们就贴下代码,不真的删除了,毕竟客户正在用,一旦出现了什么问题就悲催了。
删除文件名+版本号
pod trunk delete trs_ta_sdk 1.5.7
cocoapods使用遇到的一般问题解决:
https://www.jianshu.com/p/1dea9987c647
Mac 用RVM安装ruby 2.0.0的时候出现错误(很重要,我就是在这里栽跟头的):
http://blog.csdn.net/luohancc/article/details/46897247
unable to find utility "simctl"的解决方案(重装cocoapods的时候很容易遇到这个问题):
http://www.hudongdong.com/bug/772.html
5、多人协作发布SDK到cocoapods
在需要多人维护SDK的场景下,我们怎么才能实现多人同时发布SDK到cocoapods呢?
-
首先添加对方的cocoapods的注册邮箱到pod上
pod trunk add-owner trs_ta_sdk_test 2273034940@qq.com
-
然后开发者将trs_ta_sdk_test.podspec文件中的他人信息改为自己的信息,包括姓名、账号、原地址等等。
-
进行发布
参考资料