CocoaPods制作第三方库,管理自己的私有库以及发布官方库(模块化与组件化)

CocoaPods在这里就不多做介绍了,相信大家都对此都使用过,也知道其对我们的好处。CocoaPods可以使我们项目管理第三方更容易,平时第三方库都是pod install下来的,再也不用之前的手动拖进工程了。那么我们今天就来说下我们自己怎么制作第三方并发布到CocoaPods官方;还有项目组件化,把自己的模块封装成库并发布到私有的git上。

这里的内容是为了记录自己学习的经历,内容也是结合前人经验和自己实践写的,请多多宽容。

一 . Cocoapods环境安装

首先我们需要安装CocoaPods环境,CocoaPods环境安装,没安装的同学可以跟着安装下。最好安装最新的环境,否则执行下边步骤可能会出现错误。

二 . 制作本地库

打开终端,cd到你想建立文件的目录,通过pod指令建库:(NNUBase是lib的名称)

pod lib create YYBase

紧接着你会看见一串指令,显示将从Cocoapos下载模板:

Cloning `https://github.com/CocoaPods/pod-template.git` into `YYBase`.

模板下载下来后,会有几个问题需要你回答:

分别是:(1)你想在什么平台上运行:iOS

(2)选择什么语言:ObjC(emmm重复了一次是因为我输错一个字母,请忽略)

(3)你的库需要包括一个测试的demo应用吗?Yes

(4)将使用什么类型的测试框架:None(因为不知道其他几种类型所以用none)

(5)你想创建基于视图的测试吗:No

(6)类别的前缀:YY(这个可以自己定义)

6个问题提交完毕后会自动running install。

Running pod install on your new library.

Analyzing dependencies
Downloading dependencies
Installing YYBase (0.1.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `NNUBase.xcworkspace` for this project from now on.
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

 Ace! you're ready to go!
 We will start you off by opening your project in Xcode
  open 'YYBase/Example/NNUBase.xcworkspace'

并且在install结束后自动打开lib工程文件,我的这里是叫YYBase.xcworkspace。一个空的本地库的文件结构如下:

 

其中ReplaceMe.m文件的位置是你需要将你要封装的代码放入的位置。这里我就随便放入一个模块的文件。

*注意点:

1、我们自己的代码不管是新添加文件、还是现有代码有改动,都需要需要在cd到Example下执行pod install后,才能导入头文件import NNUBase,代码才会更新。

2.我们自己的代码文件最多一层文件结构即Classes下一级的文件夹内只能放代码,不能再创建子文件夹。

3.每个类文件如果想暴露出去,则需要在类名前添加修饰符即(public class xxx或者open extension xxx),添加public、open,而extension不能用open修饰所以用plublic修饰。

4.如果已经暴露的类,想暴露里边的函数方法,则也需要在方法 func 前加public,否则外部调用会找不到方法名。

到这里本地库我们已经制作好了,如果把我们本地当做git库的话,这时候我们只需要在你其他的项目或者工程的Podfile文件里添加如下:
YYTest:是项目名称
YYBase:本地私有库
path:是指定本地库所在的位置

target 'YYTest' do
  pod 'YYBase', :path => '/Users/nnu-scens/Desktop/Text/YYBase'
end

二 . 本地库提交到远程库

首先我们先了解下Specs和Specs Repo、Code和Code Repo。

Specs:使用CocoaPods的指令创建好本地库之后,默认生成一个podspec文件。它描述该库某一个版本的信息,比如库的名字、版本号、描述、依赖库等等。

Specs Repo:就是存放spec文件的git库,它包含了所有可用的第三方库。每个库都会有独立的文件夹,每个版本以独立的子文件夹保存。文件夹中只有一个描述文件,也就是Spec文件。

Code:就是我们自己库的源代码。
Code Repo:就是Git库存放源代码的地方。

重点:!Code Repo和Spec Repo不能一概而论,所以就不能把那个Repo放到一个git库中,需要将他们分开存放。

cd到你的源代码目录下,提交源代码到git:

git remote add origin https://github.com/Yyue98/YYBase
git add .
git commit -a -m "0.1.0"
git push origin master
git tag 0.1.0
git push origin 0.1.0

要将本地库配置到远程库中,需要将spec文件调试通,不能有error和warning。

修改好spec文件后需要使用命令测试一下(测试前确保在github中新建了一个同名的repository):

pod lib lint

库如果没有通过验证,就说明Spec配置有问题,在Spec出现warnings是不行的,我们可以根据警告进行修改,也可以我们执行pod lib lint --allow-warnings

pod lib lint --allow-warnings

当你的pod lib lint通过则说明本地库文件验证无误可以部署了。这时候就可以把代码push到远程库。注意可能报错的有的是路径问题,有的是你添加的源码必须能调试通过。

此时本地的lib调试通过的了就可以添加到远程的spec库中。在添加前同样需要在github中创建一个repo。地址为:https://github.com/Yyue98/YYDemoSpecs.git

pod repo add YYDemoSpecs https://github.com/Yyue98/YYDemoSpecs.git

repo添加成功后你可以在 ~/.cocopods/repos/ 目录下找到和你建立的spec repo同名的文件夹。然后你就需要cd到你存放需要添加的spec文件的目录下将它push到远程端仓库中。

pod repo push YYDemoSpecs YYBase.podspec

和lib lint一样在push之前会先检查lib的有效性,只有通过检查才能够push到远程库中。

三 . 发布到Cocoapods官方库中

首先先用cd到Spec文件所在的目录,然后执行pod lib lint。和发布远程库一样,必须在lib lint没有错误的前提下才能发布。

提交之前,你需要注册pod账号。实质上是将"邮箱--名称--电脑"绑定在一起,所以这里不需要密码。

pod trunk register EMAIL [NAME]

以下是该指令的帮助文档,大概意思是:
如果第一次注册,邮箱和名称都是必须的。如果已经注册过,可以省略名称(除非你想修改名称)。推荐填写描述信息,以及给出了一些Examples,按着Example做就可以了。

pod trunk register EMAIL [NAME]

      Register a new account, or create a new session.

      If this is your first registration, both an `EMAIL` address and your
      `NAME` are required. If you’ve already registered with trunk, you may omit
      the `NAME` (unless you would like to change it).

      It is recommended that you provide a description of the session, so that
      it will be easier to identify later on. For instance, when you would like
      to clean-up your sessions. A common example is to specify the location
      where the machine, that you are using the session for, is physically
      located.

      Examples:

          $ pod trunk register eloy@example.com 'Eloy Durán' --description='Personal Laptop'
          $ pod trunk register eloy@example.com --description='Work Laptop'
          $ pod trunk register eloy@example.com

结果
[!] Please verify the session by clicking the link in the verification email that has been sent to xxx@xx.com
去邮箱认证即可。
注册账号之后,我们可以尝试将Spec提交到Specs Repo:
执行命令:

pod trunk push YYBase.podspec --allow-warnings

但我这里的问题是发布成功了,但是使用pod search YYBase却找不到自己发布的库。

四 . 验证私有库

新建工程YYBaseTest然后,cd 到主目录,编辑Podfile文件:

source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'  # 清华镜像
source 'https://github.com/Yyue98/YYDemoSpecs.git'   # 私有库
platform :ios, '12.0'

target 'YYBaseTest' do
  pod 'YYBase'
  pod 'YYKit'
  pod 'WCDB'

end

开头的两行分别使用的是清华的镜像以及自己的私有库。

接下来在Xcode中打开工作空间,就会找到你install的私有库了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web第三方仓管理模块用于管理Web应用程序中使用的第三方库组件。当开发人员在项目中使用第三方库时,这个模块可以帮助他们更有效地管理的版本,依赖关系和更新。 首先,这个模块允许开发人员在项目中声明所需的第三方库和版本号。开发人员可以通过简单的配置文件或命令行工具指定所需的,以及它们的精确版本或兼容版本范围。这样,可以确保项目编译时使用正确的版本,同时避免潜在的兼容性问题。 其次,这个模块可以自动管理的下载和安装。一旦开发人员指定了所需的和版本信息,系统可以自动检查是否存在,并从公共仓私有中下载所需的文件。这样,开发人员不需要手动下载和管理文件,减少了操作的复杂性和错误的可能性。 此外,这个模块还可以处理的更新和依赖关系。当需要更新某个时,开发人员可以简单地指定新的版本号,而模块会负责下载和安装最新版本的。同时,模块会自动处理之间的依赖关系,确保更新的与其他兼容。 最后,这个模块还提供了一些额外的功能,如的搜索和浏览。开发人员可以通过模块提供的接口,搜索特定的,了解其最新版本和其他相关信息。这些功能可以帮助开发人员更好地选择和管理所需的,并提高项目的开发效率。 综上所述,Web第三方仓管理模块是一个非常重要的工具,它可以帮助开发人员更好地管理和使用第三方库,提高项目的质量和效率。通过简管理和更新过程,这个模块可以减少开发人员的工作量,并降低潜在的错误风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值