您的位置:首页 > 运维架构

Cocopod上更新上传自己的开源框架供别人下载

2016-11-30 16:18 253 查看
为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢?

下面我一步一步带大家开源自己的框架。

第一步

把自己的框架更新到
github
上,为了提交地址给他人下载。
这里就不详细介绍如何把项目更新到
github
上了

第二步

这个时候我们的项目已经挂在
github
上了
我们需要给本地的项目新建一个
Podspec
描述文件

[plain] view plain copy







// 进入到项目目录下

cd xxx/xxx/xxx

// 创建Podspec文件

pod spec create “你的Podspec名字”

此时你已经在项目目录下创建了一个Podspec文件了
这个时候我们需要对他进行编辑
注意:最好用xcode 去编辑 防止错误 只能输入英文标点

[plain] view plain copy







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" //依赖的系统库 可以依赖多个

// 若需要依赖其他开源的第三方库 可以写成下列形式 若需要有多个就复制下面代码 添加第三方库

// s.dependency "AFNetWorking"

// 如果需要配置依赖系统库

// s.framework = 'SomeFramework'// 设置依赖的系统库名称

// s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称

// 需要依赖系统的library

s.library = 'iconv'// 设置只依赖一个系统的library

s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library

// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了

s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}

然后我们设置下tag号 然后推送到git

[plain] view plain copy







$ git commit -m "说明"

$ git tag 0.0.1 // tag 和上面你设定的一样 一般tag号和版本号一致

$ git push --tags

$ git push origin master

我们来验证下他是否符合要求。



[plain] view plain copy







pod lib lint "podspec名字".podspec --allow-warnings


若我们看


“你的podspec名字” passed validation
说明这个配置文件是没问题的。


若失败了。
我们就需要将远程tag删除 重新来过

[plain] view plain copy







删除tag

//查看tag

git tag

//删除一个指定的tag,并上传一个空tag到远程tag

git tag -d <tagname>

git push origin :refs/tags/你的tag号

[plain] view plain copy







在验证通过之后我们需要将代码提交到cocopods

pod trunk push "你的podspec名字".podspec --allow-warnings

如果没有出错 我们就算大功告成了。

通过pod search "项目名"去搜索你的第三方库吧。。

总结常见错误:



问题:
这种错误怎么办?


[plain] view plain copy







- ERROR | [iOS] The `source_files` pattern did not match any file.

查了一些资料:

[code]



解决方法:
解决方法:将最后提交的开源框架的类的提交码在 xx.podspec 中改成这种:

[plain] view plain copy







s.source = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }

s.source_files = "GCTools/*.{h,m}"

commit来自最后一次提交:在github上可以看提交记录后面的加密码:

Git log: 也可以在终端查看



完美解决!如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: