iOS中 如何将自己的框架更新到cocopods上 韩俊强的博客
来源:程序员人生 发布时间:2016-08-16 18:00:55 阅读次数:2790次
逐日更新关注:http://weibo.com/hanjunqiang
新浪微博!
为了更方便的集成第3方框架有了cocopods 的, 当我们有了相对照较好的框架的时候如何更新到cocopods 供他人参考呢?
下面我1步1步带大家开源自己的框架。
第1步
把自己的框架更新到github
上,为了提交地址给他人下载。
这里就不详细介绍如何把项目更新到github
上了
第2步
这个时候我们的项目已挂在github
上了
我们需要给本地的项目新建1个Podspec
描写文件
// 进入到项目目录下
cd xxx/xxx/xxx
// 创建Podspec文件
pod spec create “你的Podspec名字”
此时你已在项目目录下创建了1个Podspec文件了
这个时候我们需要对他进行编辑
注意:最好用xcode 去编辑 避免毛病 只能输入英文标点
Pod::Spec.new do |s|
s.name = “项目名字”
s.version ="版本号"
s.summary = "项目介绍"
s.homepage = "你的主页地址"
s.license = "MIT" //这里就选这个许可证
s.author ={"你的名字" => "邮箱"}
s.platform =iOS,"最低支持的系统"
s.source ={git =>"项目git地址",tag =>"tag号"}
s.source_files = "text/*/.(h.m)" //这里是项目路径要传的文件
s.framework ="UIKit" //依赖的系统库 可以依赖多个
// 若需要依赖其他开源的第3方库 可以写成以下情势 若需要有多个就复制下面代码 添加第3方库
// s.dependency "AFNetWorking"
// 如果需要配置依赖系统库
// s.framework = 'SomeFramework'// 设置依赖的系统库名称
// s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
// 需要依赖系统的library
s.library = 'iconv'// 设置只依赖1个系统的library
s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了
s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}
逐日更新关注:http://weibo.com/hanjunqiang
新浪微博!
然后我们设置下tag号 然后推送到git
$ git commit -m "说明"
$ git tag 0.0.1 // tag 和上面你设定的1样 1般tag号和版本号1致
$ git push --tags
$ git push origin master
我们来验证下他是不是符合要求。
pod lib lint "podspec名字".podspec --allow-warnings
若我们看
“你的podspec名字” passed validation
说明这个配置文件是没问题的。
若失败了。
我们就需要将远程tag删除 重新来过
删除tag
//查看tag
git tag
//删除1个指定的tag,并上传1个空tag到远程tag
git tag -d <tagname>
git push origin :refs/tags/你的tag号
在验证通过以后我们需要将代码提交到cocopods
pod trunk push "你的podspec名字".podspec --allow-warnings
如果没有出错 我们就算大功告成了。
通过pod search "项目名"去搜索你的第3方库吧。。
逐日更新关注:http://weibo.com/hanjunqiang
新浪微博!
总结常见毛病:
问题:这类毛病怎样办?
- ERROR | [iOS] The `source_files` pattern did not match any file.
查了1些资料:
逐日更新关注:http://weibo.com/hanjunqiang
新浪微博!
解决方法:
解决方法:将最后提交的开源框架的类的提交码在 xx.podspec 中改成这类:
s.source = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
s.source_files = "GCTools/*.{h,m}"
commit来自最后1次提交:在github上可以看提交记录后面的加密码:
git log: 也能够在终端查看
完善解决!以下:
遇到问题请咨询:
逐日更新关注:http://weibo.com/hanjunqiang
新浪微博!
QQ群:446310206
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠