p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以通过Pod傻瓜式的集成到自己的工程中,那么问题来了,我自己也有一系列的小工具类,怎么让它也支持pod集成,进而以后的项目开发更加的方便的使用呢?
这是第二遍操作了,第一遍学习使用卡在中间,一直不成功....哈哈,多亏了师傅的帮助和解答.
这里再次操作熟练来记录下,算是总结吧:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
1.上传项目源码:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
span.s2 { color: #3194d0 }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 14.0px "Helvetica Neue" }
把项目源码上传到gitHub仓库, https://github.com/PengSiSi/iOS_PSCategory
再clone到本地,如果项目本来就在gitHub的仓库中,直接clone到本地即可.
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px "Helvetica Neue" }
2.用终端命令cd到本地项目目录并执行如下命令:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
pod spec create iOS_Category
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
这时候本地就生成一个iOS_Category.podspec文件
p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #454545 }
span.s1 { font: 14.0px ".PingFang SC" }
3.用编辑器打开.podspec文件,我用的Xcode打开的.
Pod::Spec.new do |s| s.name = ‘iOS_Category‘ s.version = ‘0.0.1‘ s.summary = ‘iOS_Category is a iOS_Category‘ s.homepage = ‘https://github.com/PengSiSi/iOS_PSCategory‘ s.license = ‘MIT‘ s.author = { ‘PengSi‘ => ‘[email protected]‘ } s.source = { :git => ‘https://github.com/PengSiSi/iOS_PSCategory.git‘,:tag => s.version.to_s } s.source_files = ‘iOS_Category/*.{h,m}‘ s.frameworks = ‘UIKit‘, ‘Foundation‘ s.requires_arc = true s.ios.deployment_target = ‘7.0‘ end
4.为源代码添加对应的Tag;
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
git tag ‘0.0.1‘ //版本号
git push --tags //提交标签
5.验证podspec文件:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
span.s2 { font: 12.0px Menlo; color: #657b83; background-color: #f6f6f6 }
span.s3 { background-color: #ffffff }
编辑完podspec文件后需要验证一下这个文件是否可用podspec文件不允许有任何的Warning或者Error
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
执行命令
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
pod spec lint iOS_PSCategory.podspec --verbose
注意: 任何的警告、错误都是不能被添加到Spec Repo中
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 14.0px "Helvetica Neue" }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p3 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 14.0px "Helvetica Neue" }
6. 通过Trunk推送给Cocoapods服务器:
首先向trunk服务器查询自己的注册信息
pod trunk me
存在Trunk账号截图
没有注册Trunk的话,注册一个账号即可:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
pod trunk register 邮箱全称 ‘用户名‘ --verbose
7.最后通过终端push对应的podspec,完成开源项目支持Cocoapods下载的最后一步
pod trunk push 工程名字.podspec
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #333333; background-color: #ffffff }
span.s1 { }
成功的结果截图:
8.搜索pod库, 这时就可以搜索自己刚提交过的开源文件
pod search iOS_PSCategory
注意点:
可能出现的错误:
http://www.itstrike.cn/Question/799c4add-42e1-4641-8641-27a4a16a1236.html
更加详细请参考这篇博客:
https://juejin.im/entry/57982040d342d3005908b63e
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px "Helvetica Neue" }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.3px "Helvetica Neue"; color: #333333; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #333333; background-color: #ffffff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #333333; background-color: #f8f8f8 }
span.s1 { }
span.s2 { font: 12.0px Menlo; color: #4e5980; background-color: #f8f8f8 }
span.s3 { color: #000080 }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 12.0px Menlo; color: #4e5980; background-color: #f8f8f8 }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
span.s1 { font: 12.0px "Helvetica Neue" }
span.s2 { font: 12.0px ".PingFang SC" }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #333333; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.3px "Helvetica Neue"; color: #333333; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }