iOS-发布代码到cocoapods上

本文详细介绍了如何使用CocoaPods创建并发布Objective-C开源库,包括理解工作流程、创建工程、添加代码、配置podSpec文件、上传到GitHub、打tag、远程校验以及推送到trunk。同时,还讲解了如何添加和引用资源文件,确保代码库的完整性和可用性。
摘要由CSDN通过智能技术生成

前言

不知道你们是否好奇过,SDWebImage的代码,为什么podfile中配置一下,然后pod isntall就可以下载下来?我们应该如何才可以开发一个可以用cocoapods管理的开源库?

一、 原理

在这里插入图片描述
从上图来看,大概需要了解这几个流程:

  • 我们的代码,需要push 到 trunk库中;
  • trunk 会更新到 github的specs repo库
  • 更新后,我们才能用pod install 安装我们push上去的代码。

二、过程

2.1 创建工程

  • 用命令行进入工程要创建的位置

cd /Users/xxx/Desktop/YZFaceTool

  • 创建模板工程

pod lib create YZFaceTool
注意:
(1)YZFaceTool 是开源库的名字,可以根据自己的功能开取名;
这个命令执行后,命令行会问下面几个问题
(2)当被问及创建Swift还是OC项目,按自己要求回答,我选择ObjC;
(3)当被问及是否创建一个demo应用包含在工程里,根据需要,如果需要写一个demo示例,就选择Yes,否则选择NO,我这里选择Yes;
(4)当被问及是否需要使用测试Framwork,选择NO;
(5)当被问及是否需要做接界面调试,我这里选择NO;
(6)还有一个就是工程文件的前缀,我这里是自己的名字的缩写,这个随意写;
在这里插入图片描述

完成后,进入文件夹,可以看到命令行我们创建一个了模板的工程,如下图:
在这里插入图片描述

2.2 添加代码,并模拟测试使用

进入上图中,Classes那个文件夹,放入要上传的代码,如下图:
在这里插入图片描述
然后,用命令行进入Exmaple, 然后pod install 模拟下载你添加的代码,如下图:
在这里插入图片描述
这样,就可以模拟其他用户 pod install你的开源库。此时,可以在项目中模拟测试一下,是否可用,如果没有问题,就可以准备上传到cocoapods库了。

2.3 上传代码到cocoapods中

2.3.1 需要在GitHub上新建一个项目地址

在这里插入图片描述
新建完成后,会进入如下的页面:
在这里插入图片描述

2.3.2 配置podSpec文件

这个文件是非常重要的,配置的时候要小心,但是只需要配置几处地方:
(1)podSpec文件的位置,如下图:
在这里插入图片描述

(2)配置的注意项:
在这里插入图片描述
查看一下配置是否正确,如果正确的话,就可以把本地项目与GitHub创建的项目地址关联起来了。

2.3.3 GitHub地址关联项目

用命令行关联,需要先回调主目录:
在这里插入图片描述
然后用命令行: git remote add origin url(gitlab的工程的url)

git remote add origin https://github.com/lyz0925/YZFaceTool.git

关联完后,就提交代码:

git add .
git commit --m “xxxx”

提交完后,可以到GitHub上查看一下是否有你提交的代码和信息,如下图:
在这里插入图片描述
如果已经提交上去了,就可以验证了。

2.3.4 本地验证

在命令行中输入如下的代码:

pod lib lint YZFaceTool.podspec
注意:
(1)YZFaceTool.podspec要替换成自己的具体的.podspec的名字

过一会儿如果出现以下的错误:
在这里插入图片描述
说明需要忽略警告,那就在命令行添加--allow-warnings, 如下:

pod lib lint YZFaceTool.podspec --allow-warnings

执行,等一会儿,如果没有问题,就出现下图的 passed validation
在这里插入图片描述

如果成功了,就可以打tag了。

2.3.5 打tag

这个tag要注意跟podspec里面写的version要保持一致,回忆一下这个version在哪里,如下图:
在这里插入图片描述
命令行打tag如下:

git tag 0.1.0
git push --tags

这两个操作是,先打tag 然后上传到远端上,这俩操作完后,可以去GitHub上查看是否有tag,如下图:
在这里插入图片描述
如果有tag,说明tag打成功了,可以进入tag,然后点击下载查看一下,下载下来的代码是否跟你代码一样。如果一样,说明你的开源代码已经上传上去了。但是这时候还不能给其他人使用。
在这里插入图片描述
如果没有问题的话,就可以走远程校验了。

2.3.6 远程校验

命令如下:

pod spec lint YZFaceTool.podspec

如果成功了,就可以推倒trunk里了。

2.3.7 推到trunk

在推到trunk之前,需要检查一下,自己是否有trunk账号,用命令

pod trunk me

如果出现下图:
在这里插入图片描述
表示已经有trunk账户了,如果不是,就注册一个trunk账户。

2.3.7.1 注册trunk

pod trunk register xxx@cocoapods.org 'huangxx' --description='huangxx' macbook pro' --verbose

  • xxx@cocoapods.org - 一个真实存在的邮箱,不一定非得是@cocopods.org,例如QQ。
  • huangxx - 用户名
  • huangxx’s macbook pro - 描述性文字

如果所有的步骤都能成功的话,你会受到一份邮件,需要点击验证下。

2.3.7.2 推podspec到trunk上

pod trunk push YZFaceTool.podspec

执行命令,如果出现下图,就表示成功了:
在这里插入图片描述

查看cocoapods的spec库是否有自己的上传的

进入该网址:https://github.com/CocoaPods/Specs/tree/master/Specs
查看自己上传的,如果能找到,说明上传成功了。

3. 添加图片资源

3.1 方式一:利用自带Assets添加资源

  • 当使用CocoaPods管理远程仓库的代码时, 都会有一个podspec文件, 在这个文件中, 我们需要加入几句代码来表示需要引用的资源, 路径等, 如下图:
    在这里插入图片描述

  • 上述图片中的路径位置在下面的图中
    在这里插入图片描述

  • 将图片资源放在Assets文件夹中
    在这里插入图片描述

  • 当图片放置好, podspec文件也添加引用资源的代码后, 使用终端cd到当前工程, 并执行pod install
    在这里插入图片描述

在这里插入图片描述

3.2 方式二:将资源和代码都放在classes下

效果如下:在这里插入图片描述
每个小功能上,都有对应的一个Resources 存放这个功能对应的小资源。

步骤:

(1)按照如下的格式,添加资源
在这里插入图片描述
(2)修改spec的文件
在这里插入图片描述

4. 引用资源

  • 使用CocoaPods添加的代码库, 在工程编译后, 图片等资源会在包的下图位置
    在这里插入图片描述
  • 使用代码查找当前文件所在的bundle包可以使用NSBundle类的+ (NSBundle *)bundleForClass:(Class)aClass;方法
  • 图片资源都会在LTFM.bundle包中, 所以在引用图片的时候, 不能使用[UIImage imageNamed:@“图片名”]的方式, 而是需要使用图片路径来加载图片;如果直接使用[UIImage imageNamed:@“图片名”] 查找图片, 那么就不会加载出来
  • 使用图片的代码:
- (UIImage *)getImageWithName:(NSString *)imageName {
    NSBundle *currentBunle = [NSBundle bundleForClass:self.class];
    // IGFrame 需要替换成 你自己的Framework的名字(如果自定义了bundle, 就用自定义的bundle的名字)
    NSString *filePath = [currentBunle pathForResource:[NSString stringWithFormat:@"%@@2x.png",imageName] ofType:nil inDirectory:@".bundle"];
    UIImage *image = [UIImage imageWithContentsOfFile:filePath];
    if (image == nil) {
        image = [UIImage imageNamed:imageName];
    }
    return image;
}

5. 基础组件组件化

https://www.jianshu.com/p/66da0b4585c3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值