将代码提交到CocoaPods超详细的操作步骤和图解

释放双眼,带上耳机,听听看~!

操作步骤:
一:提交代码到GitHub并打Tag
二:更新CocoaPods版本
三:新建.podspec文件并进行验证,然后提交.podspec文件到trunk中
四:搜索工程并创建新工程进行测试
五:更新版本,重新上传新版本

一:提交代码到GitHub并打Tag
1、注册GitHub账号并登录
2、右上方点击+,新建仓库(仓库名字(Repository name)、仓库权限(Public)、readme、license)

创建完成如下图:

3、检出仓库
1、打开Xcode,选择 Xcode—>Preferences偏好设置—->Account —> Add Repository,输入仓库的地址Address和GitHub的用户名和密码

仓库添加完成后如下图:

2、 创建完成,需要将仓库检出到本地,Source Control —> Check Out…

找个位置保存起来

3、将写好开源框架/库的Demo或者Example放到git仓库下,还要将要开源的文件夹也放入到git仓库中(该文件夹在后面会被用到)

4、 切换到git仓库目录,并提交该工程(.podspec, LICENSE 这两个文件必须提交到git上)

cd /Users/macmini/Documents/XXImageLoopView
git add -A
git commit -m “first commit for version 1.0.0”
git push origin master

提交之后刷新github可以看到提交的文件:

5、 打tag(这一步不能少,后面.podspec文件会用到该版本号)

git tag ‘1.0.0’
git push –tags

如果在操作过程中想删除tag,可以使用如下命令(删除tag不属于整个过程的步骤,这里只是提供删除tag的命令,在需要的使用可以查看):

git tag // 查看tag
git tag -d 1.0.0 //删除一个指定的tag
git push origin :refs/tags/1.0.0 // push到远程tag

二:更新CocoaPods版本
查看cocoapods的版本号

pod – -version

确保cocoapods的版本号大于0.33,如果不大于需要先更新版本(无论版本号多大最好都更新一下)

sudo gem install cocoapods

注册Trunk账户(邮箱地址建议写成github注册的邮箱,用户名写成github对应的用户名)

pod trunk register 邮箱地址 ‘用户名’ –verbose

注册命令执行完之后,对应的邮箱地址会收到一封邮件,“请确认您的注册CocoaPods通过点击以下链接:”,打开链接地址完成验证,如果地址不能点击就直接粘贴URL到浏览器上执行

查看自己的注册信息
pod trunk me

三:新建.podspec文件,并提交.podspec文件到trunk中
创建.podspec文件
.podspec文件的作用是为了让CocoaPods搜索引擎知道该代码的作者、版本号、概要、描述、源代码地址、部署版本、依赖的框架等描述信息。 .podspec文件可以自动生成,但是因生成会生成很多没有用的信息,所以建议在github上找一个.podspec文件修改一下参数即可。
pod spec create XXImageLoopView // 生成XXImageLoopView.podspec文件

注意:将代码提交到CocoaPods最容易出错的地方就是该.podspec文件,有可能多一个键或者少一个键、写错一个值都有可能在提交时出错,这里给出一份我的库中的,建议将我的.podspec文件拷贝一份,然后修改每个键对应的值,一般.podspec文件名和仓库的名字一致

Pod::Spec.new do |s|
s.name = "XXImageLoopView"
s.version = "1.0.0"
s.summary = "A fast integration images loop function of custom control"
s.description = "A fast integration images loop function of custom control addtion with cocoapod support."
s.homepage = "https://github.com/mengday/XXImageLoopView"
s.social_media_url = "http://www.weibo.com/u/5267312788"
s.license= { :type => "MIT", :file => "LICENSE" }
s.author = { "menday" => "mengd6@126.com" }
s.source = { :git => "https://github.com/mengday/XXImageLoopView.git", :tag => s.version }
s.source_files = "XXImageLoopView/*.{h,m}"
s.ios.deployment_target = '6.0'
s.frameworks = 'UIKit'
s.requires_arc = true

end

s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错 s.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 = ‘AFNetworking’ s.dependency:依赖库,如有多个可以这样写 source_files:写法及含义建议大家写第一种或者第二种

"XXImageLoopView/*
""XXImageLoopView/XXImageLoopView/*.{h,m}"
"XXImageLoopView/**/*.h"

 

“*” 表示匹配所有文件
“*.{h,m}” 表示匹配所有以.h和.m结尾的文件
“**” 表示匹配所有子目录
s.source 常见写法

s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :commit => "68defea" }
s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :tag => 1.0.0 }
s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :tag => s.version }

commit => “68defea” 表示将这个Pod版本与Git仓库中某个commit绑定 tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定 tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定
2. 提交之前先验证.podspec文件是否合法
pod spec lint XXImageLoopView.podspec

若果校验失败报下面错误,执行执行一下echo “2.3” >.swift-version命令, 如果是其他错误可能是.podspec文件配置有问题
echo “2.3” >.swift-version

![这里写图片描述](https://img-blog.csdn.net/20170118145217543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmJpcmRiZXN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 出错率最多的是这个错误,错误原因可能是.podspec文件中的s.source_files的值配置的不对 ![这里写图片描述](https://img-blog.csdn.net/20170118162806566?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmJpcmRiZXN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 如若验证成功如下图 ![这里写图片描述](https://img-blog.csdn.net/20170118150831356?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmJpcmRiZXN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3. 提交.podspec文件到trunk中
pod trunk push XXImageLoopView.podspec

只要验证通过,提交时一般没有什么问题, 一般会卡在“Updating spec repo ‘master’”, 这时不要关闭终端,要等,根据网络不同提交时可能要花几分钟时间,甚至是10分钟都有可能,成功如下图:

4. 查找提交成功的库
pod search XXImageLoopView

如果查不到会报错如下: ![这里写图片描述](https://img-blog.csdn.net/20170118151553954?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmJpcmRiZXN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 解决方案: 先删除search_index.json文件,然后再search (文件不存在时会自动下载,根据不同的网络可能要花一会时间,要等)
rm ~/Library/Caches/CocoaPods/search_index.json
pod search XXImageLoopView

![这里写图片描述](https://img-blog.csdn.net/20170118152026643?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmJpcmRiZXN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
5. 创建工程测试
创建XXImageLoopViewTest工程,并新建Podfile文件

切换当前目录并安装

cd /Users/macmini/Documents/Test/XXImageLoopViewTest/
pod install –verbose –no-repo-update

3. 关闭Xcode,重新打开XXImageLoopViewTest.xcworkspace

导入头文件测试

#import "ViewController.h"

#import <XXImageLoopView.h>

@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];

NSMutableArray *images = [NSMutableArray arrayWithCapacity:4];
for (NSInteger i = 0; i < 4; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.jpg", i+1]];
[images addObject:image];
}

ActionBlock block = ^(NSInteger index){
NSLog(@"点击了第张%ld图片", index);
};

XXImageLoopView *imageLoopView = [[XXImageLoopView alloc] init];
imageLoopView.frame = CGRectMake(0, 0, self.view.frame.size.width, 150);
imageLoopView.images = images;
imageLoopView.pageControl.pageIndicatorTintColor = [UIColor greenColor];
imageLoopView.pageControl.hidden = NO;
imageLoopView.interval = 3.0;
imageLoopView.actionBlock = block;
imageLoopView.alignment = XXPageControlAlignmentBottomCenter;
imageLoopView.leftOrRightMargin = 60;
imageLoopView.bottomMargin = 15;
[self.view addSubview:imageLoopView];
}

@end

 

五:更新版本,重新上传新版本
假如github上的程序版本1.0.0有bug,需要修复,修复好代码以后,

首先要提交代码(XXImageLoopViewDemo)到git仓库中(注意除了提交Demo程序,还要提交要开源的文件夹,如本示例中的XXImageLoopView文件夹)

git add -A
git commit -m “fixed bug”
git push origin master

给项目打一个新的tag

git tag ‘1.0.1’
git push – -tags

修改.podspec文件中的version字段

s.version = “1.0.1”

提交.podspec文件到trunk中即可

pod trunk push XXImageLoopView.podspec

修改测试工程的Podfile文件
pod ‘XXImageLoopView’, ‘~>1.0.1’

重新安装第三方库,并查看安装下来的是否是想要的版本
pod install – -verbose – -no-repo-update

相关文章:

https://www.jishudog.com/27986/html
https://www.jishudog.com/27988/html

人已赞赏
iOS文章

iOS如何创建私有 CocoaPods 仓库

2020-4-28 21:33:09

iOS文章

5分钟快速让你的框架支持cocoapods,podspec文件讲解

2020-4-28 22:48:30

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索