制作CocoaPods

iOS管理第三方库大多使用CocoaPods,如果需要实现组件化或者发布自己的开源库/私有库到CocoaPods,则需要手动配置。

1,创建开源仓库/私有仓库

这里以GitHub为例,创建一个新的仓库,制作Pod这里必须选择license版本,一般选择MIT,可选择增加README与gitignore文件。

1.png

将库代码复制到对应目录下,提交代码之前需要打上tag,

git tag 0.1.0  // podspec文件是通过tag指定库的版本的
git push origin --tags // 提交所有tag

2,创建上传Podspec文件

pod spec create PSCheckVersion

2.1,配置Podspec文件

Pod::Spec.new do |s|

s.name         = "PSCheckVersion" 
s.version      = "0.1.0"
s.summary      = "一键检测App更新,并附带UI可直接使用"

s.homepage     = "https://github.com/paintingStyle/PSCheckVersion"
s.license      = "MIT"
s.author       = { "paintingStyle" => "sfdeveloper@163.com" }
s.platform     = :ios,'7.0'

s.source       = { :git => "https://github.com/paintingStyle/PSCheckVersion.git", :tag => "#{s.version}" }
s.source_files = "PSCheckVersion/**/*.{h,m}"
s.framework    = "UIKit"
s.dependency   "Masonry", "~> 1.1.0"
s.requires_arc = true

end

依赖多个系统库:

s.frameworks = "UIKit", "AnotherFramework"

依赖多个第三方库

s.dependency "Masonry", "~> 1.1.0"
s.dependency "AFNetworking", "~> 3.1.0"

这里的s.source_files的路径就是库代码的路径,他是从Podspec同级目录路径开始找寻的,这个目录文件都将被编译。这里为Podspec同级目录的PSCheckVersion文件夹下的所有.h,.m文件。

如果库中用到了图片/xib等,需要指定到s.resourcs下,这个目录文件不参与编译。

2.2,验证Podspec文件是否可用

pod spec lint PSCheckVersion.podspec
2.png

验证成功如上图所示,注意有任何WARNING或者ERROR都是不可以的,它就不能被添加到Spec Repo中,不过xcode的WARNING是可以存在的,遇到报错一般是Podspec文件配置有误,根据提示更改即可。

2.3,测试Pod

pod 'PSCheckVersion', :podspec => '/Users/rzj/.cocoapods/repos/master/Specs/PSCheckVersion/0.1.0/PSCheckVersion.podspec'  #指定podspec文件

通过指定podspec文件路径,检测该pod是否可用

2.4,注册Trunk

pod trunk register sfdeveloper@163.com 'paintingStyle' --description='paintingStyle MacPro'

他会发送邮件到你的邮箱,点击链接激活。

执行下面命令,获取trunk信息

pod trunk me 
3.png

2.5,上传Podspec文件

pod trunk push 命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的JSON文件

pod trunk push PSCheckVersion.podspec --allow-warnings --verbose
4.png

2.6,更新pod库

如果pod trunk push成功后无法pod search到自己的库,可执行该命令。

pod setup

此时搜索,可能出现 Unable to find a pod with name, author, summary, or description matching,需要删除search_index.json文件,重新执行pod search会生成search_index.json文件。

rm ~/Library/Caches/CocoaPods/search_index.json

3,总结

  • 创建开源仓库/私有仓库
  • 代码打上tag,上传到代码仓库
  • 配置Podspec文件
  • 验证Podspec文件是否可用,注册Trunk并且上传
  • 更新pod库
    库更新版本,代码打上tag,修改podspec文件,执行执行pod trunk push上传即可。

4,指定pod仓库地址/仓库源

pod 'MWPhotoBrowser',:git =>'https://github.com/paintingStyle/MWPhotoBrowser.git'
pod 'SPTabBarController',source:'http://code.workinggo.com/guoqiang/SXSpecs.git'

5,错误情况

podspec可能存在异常,比如中文符号或者多余描述
 Unable to interpret the specified path `PSCheckVersion.podspec` as a podspec 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容