这两天在写了一个导航条控件,顺带把它发到了CocoaPods上,现在总结一下,顺带讲一下我遇到的问题,希望能够帮助到大家。
总结一下就是以下几个步骤:
1.把代码提交到Github
2.给你的git打tag
3.创建.podspec描述文件
4.编辑.podspec描述文件
5.验证.podspec描述文件是否合法
6.注册CocoaPods
7.提交到CocoaPods
下面一一做讲解,开始喽!
1.把代码提交到GitHub上
首先,创建GitHub仓库,创建的时候一定要选择下面这两项,license选择“MIT”,如果没选择license,想法添加一个license进入,要不然第5步验证的时候会报Unable to find a license file
错误
// 创建本地仓库
git init
// 添加名称为origin的远程连接
git remote add origin '你的github项目地址'
// 将本地代码加入本地仓库里
git add .
// 提交修改到本地仓库
git commit -m '你的修改记录'
// 推送master分支的代码到名称为origin的远程仓库
git push origin master
711E296C-75E1-4C22-BCCC-87E3DBA8E97F.png
然后,把仓库Clone到本地,此时的文件夹应该是这个样子,可见的只有LICENSE和README两个文件
38A818CB-E0E5-403D-BFB7-526C3F6158B7.png
然后把你的库文件和项目Demo一同放入这一目录下
QQ20181107-215524@2x.png
最后就可以把这些Push上去了。
2.给你的git打tag
打tag的目的就相当于给你的开源框架制定版本号,每个版本一个tag,下面是打tag的流程:
// 查看本地tag
git tag
// 添加本地tag 0.0.1
git tag -a 0.0.1 -m 'release 0.0.1'
// 将tag传到远程
git push origin --tags
tag的其他操作
// 删除本地tag
git tag -d 1.0.0
// 删除远程tag
git push origin -d tag 1.0.0
3.创建.podspec描述文件
上传到cocoapods时主要就依赖着.podspec的描述文件来进行配置的,所以我们要先建立一个.podspec的描述文件:
// 初始化.podspec文件
pod spec create 你的项目名
4.编辑.podspec描述文件
用xcode打开此文件,会发现里面有很多信息,带#号的注释不用管,我们依次看看他们所代表的含义:
- s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
- s.version:版本号(必须和上面打的tag中的version保持一致)
- s.ios.deployment_target:支持的pod最低版本
- s.summary: 简介
- s.homepage:项目主页地址
- s.license:许可证
- s.author:作者
- s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
- s.source:项目的地址
- s.source_files:需要包含的源文件
- s.resources: 资源文件
- s.requires_arc: 是否支持ARC
- s.dependency:依赖库,不能依赖未发布的库
- s.dependency:依赖库,如有多个可以这样写
下面是个样本,仅供参考
Pod::Spec.new do |s|
s.name = "GLYPageView"
s.version = "0.0.1"
s.summary = "一个便捷标签栏."
s.description = <<-DESC
GLYPageViewKit
DESC
s.homepage = "https://github.com/Jason318/GLYPageView"
s.license = "MIT"
s.author = { "Jason318" => "834699083@qq.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/Jason318/GLYPageView.git", :tag => "#{s.version}" }
s.source_files = "GLYPageView", "GLYPageView/GLYPageView/*.{h,m}"
s.requires_arc = true
end
5.验证.podspec描述文件是否合法
pod spec lint 你的项目名.podspec
验证过程可能会碰见几个问题,先说说我碰见的几个问题:
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
这个问题是因为podspec里的 s.source_files路径有问题,没有匹配到想对应的文件,所有有下面的编译报错。这个路径是相对podspec文件而言的。
unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devices
原因是xcode模拟器找不着报错,解决办法:
steps 1:终端获取Xcode路径,即把Xcoe拖进终端(一般都是/Applications/Xcode.app)
steps 2:在终端中继续输入 sudo xcode-select -switch Xcode路径/Contents/Developer 即可。
这个过程会出现很多错误,这里不一一列举,大家按照错误信息自行修改,不过一般不会出现错误,只要你按照军哥说的做,基本上是没有问题的,因为军哥走过的坑已经告诉你们了
6.注册CocoaPods
pod trunk register 你的邮箱 '你的用户名' --description='你的描述'
成功的话就会受到一份邮件,点击邮件中的链接后验证一下:
pod trunk me
成功的话会返回以下类似字段:
- Name: WCL
- Email: wangchonglei93@icloud.com
- Since: January 10th, 21:32
- Pods:
- WCLImagePickerController
- WCLShineButton
- CRRefresh
- Sessions:
- January 10th, 21:32 - July 22nd, 07:38. IP: 58.132.205.59
如果你的pod是由多人维护的,你也可以添加其他维护者:
pod trunk add-owner ARAnalytics kyle@cocoapods.org
7.提交到CocoaPods
pod trunk push 命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的json文件。在工程根目录(包含有.podspec)下执行命令:
pod trunk push ECGCustomAlertView.podspec
没有错误的话,会提示你成功,并返回一下类似代码:
--------------------------------------------------------------------------------
�� Congrats
�� CRRefresh (1.0.0) successfully published
�� March 16th, 07:14
�� https://cocoapods.org/pods/CRRefresh
�� Tell your friends!
--------------------------------------------------------------------------------
最激动人心的时刻到了,执行pod search xxx 去查看你的库吧,对了,别忘记pod setup更新本地CocoaPods库。
最后的最后,实例仅供参考
网友评论