发布自己的CocoaPods库
来源:互联网 发布:设置windows在文件夹 编辑:程序博客网 时间:2024/06/05 17:52
自己写了一个库,发了点时间研究下发布到cocosPods的步骤,总结在下面
发布的库链接 YTTHpplePlus
命令行创建Pods库
pod lib create {你的项目名称}eg. pod lib create YTTHpplePlus3333
根据提示,输入项目的一些配置信息就会生成一个Pods模板工程,完了之后,打开使用命令行创建的项目,结构如图所示:
Example就是Pods库对应的测试工程,Classes文件夹用于存放项目源文件。
上传项目到Git服务器
把podspec种子文件所在的目录当做根目录推送项目到Git服务器上
下面是我把项目推送到GitHub上的截图:
添加Git项目的TAG版本
可以通过添加标签或者GitHub上直接添加release版本的方式添加一个Tag
添加Tag之后,可以在GitHub上看到库对应的发布版本
配置podspec种子文件,下面是我的CocoaPods项目使用的配置,不同的项目会有差别
Pod::Spec.new do |s| s.name = 'YTTHpplePlus' s.version = '0.1.4' #Pods库的版本号,需要是发布过的Tag版本中对应的一个 s.summary = 'Lightweight And Powerful XML/HTML Parser Util' #说明 s.description = <<-DESCLightweight And Powerful XML/HTML Parser Util #说明 DESC s.homepage = 'https://github.com/flypigrmvb/YTTHpplePlus' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'flypigrmvb' => '862709539@qq.com' } s.source = { :git => 'https://github.com/flypigrmvb/YTTHpplePlus.git', :tag => s.version.to_s } #项目所在的Git地址,平时我们拉取Git项目的那个地址 s.ios.deployment_target = '8.0' s.source_files = 'YTTHpplePlus/Classes', 'YTTHpplePlus/Classes/**/*.{h,m}' #源文件 s.library = 'xml2' #依赖的系统库,这里依赖的是libxml这个库 s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' } #配置HeaderSearchPaths,libxml这个库需要这么配置 s.requires_arc = true s.module_name = "YTTHpplePlus"end
pods验证Git项目
使用下面的命令验证库项目的正确性
pod trunk push YTTHpplePlus.podspec --allow-warningsUpdating spec repo `master`
验证不通过会有类似的提示:
[!] The spec did not pass validation, due to 1 error.
需要修改重写提交验证,在 坑和解决方案
这条会讲到一些的解决方案
创建CocoaPods账号
CocoaPods账号用于上传我们创建好的库项目的podspec种子文件
pod trunk register {邮箱} '{昵称}' --description='描述信息'eg.pod trunk register xxx@foxmail.com 'xxx' --description='xxx'
成功会有类似的提示信息
[!] Please verify the session by clicking the link in the verification email that has been sent to xxx@foxmail.com
验证了邮箱之后就可以继续下一步了
上传podspec种子文件到CocoaPods服务器
验证通过了之后,就可以上传podspec种子文件到CocoaPods服务器了,这个步骤还会做一个最终的验证,可能还会有些问题,需要修改重写提交验证,在 坑和解决方案
这条会讲到一些的解决方案,使用如下命令提交到cocoapods服务器
pod trunk push YTTHpplePlus.podspec --allow-warningsUpdating spec repo `master`
坑和解决方案
- podspec配置问题
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
如果使用命令行创建项目,并且把代码放在Classes目录下面,那么配置是没问题的,出问题是因为我没有把podspecs文件所在的目录当做根目录上传到Git服务器上,source_files的配置是YTTHpplePlus/Classes', 'YTTHpplePlus/Classes/**/*.{h,m}
,所以是从 项目根目录/YTTHpplePlus/Classes
下查找源文件,如果podspecs文件被移动过,那么就会有问题,导致这个错误
- pods项目编译问题
- ERROR | xcodebuild: /Users/aron/Library/Developer/Xcode/DerivedData/App-cehsvothtapdepeetbqyvvdeexuu/Build/Products/Release-iphonesimulator/YTTHpplePlus/YTTHpplePlus.framework/Headers/XPathQuery.h:10:9: error: include of non-modular header inside framework module 'YTTHpplePlus.XPathQuery' [-Werror,-Wnon-modular-include-in-framework-module]
项目中使用到了libxml这个系统的库,我在项目的头文件中有引入libxml的头文件导致了这个问题,可以查看这个解决办法
参考文档
把自己Github上的代码添加Cocoapods支持
cocoapods官方文档
- 发布自己的CocoaPods库
- 发布自己的pods到CocoaPods
- 在Cocoapods上发布自己的代码
- 发布自己的项目到Cocoapods开源库
- 发布自己的库到Cocoapods上, Pods install 自己的库
- 配置自己的CocoaPods库
- 配置自己的CocoaPods库
- 配置自己的CocoaPods库
- 配置自己的CocoaPods库
- 创建自己的Cocoapods库
- 配置自己的CocoaPods库
- 创建自己的CocoaPods库
- iOS之旅--发布自己的CocoaPods库(组件化开发第一步)
- 发布自己的pods到CocoaPods trunk 及问题记录
- podspec 发布自己的pods到CocoaPods trunk
- 如何发布自己的开源框架到CocoaPods
- 如何发布自己的开源框架到CocoaPods
- 如何将自己的项目发布到cocoapods
- JavaScript之数据类型
- IOS 使用 WKWebView 加载本地的JS和CSS文件出现乱码问题
- 关于 mybatis 中Type handler was null on parameter mapping for property '__frch_id_0'类似的错误
- 最实用的表头制作技巧,都在这了
- 相机标定原理介绍(一)
- 发布自己的CocoaPods库
- RAC的函数式编程
- Excel快捷键大全
- Objective-C KVO 中 runtime 探究
- 在jsp页面/input显示当前时间(初始换时间格式)
- IOS 数据库升级数据迁移解决方案
- 机器学习实战2-运行KNN示例
- codevs 2218 补丁vs错误(状压搜索)(luogu P1527)
- IOS 工厂模式的面向协议编程思想