iOS架构-cocoaPods之自制私有库及管理(17)

CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便。 个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。

创建一个私有的podspec包括如下那么几个步骤:

  • 创建并设置一个私有的Spec Repo。
  • 创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址。
  • 创建Pod所对应的podspec文件。
  • 本地测试配置好的podspec文件是否可用。
  • 向私有的Spec Repo中提交podspec。
  • 在个人项目中的Podfile中增加刚刚制作的好的Pod并使用。
  • 更新维护podspec。
1. 创建私有Spec Repo

什么是Spec Repo?他是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,他实际是一个Git仓库,remote端在GitHub上,当我们使用Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。这个master目录的结构是这个样子的。
在这里插入图片描述
因此我们需要创建一个类似于master的私有Spec Repo ,在码云上建立私有私库MYCode_tools_repos作为我们的私有 repo 仓库。现在GitHub 也支持私有库免费的了。

1.1 在码云上创建一个私有“仓”库:

https://gitee.com/muyushifang07/MYCode_tools_repos.git

MYCode_tools_repos 这个库就是存放私有库代码的地方,这里可以放很多其他的你的私有库。也可以把 AFNetworking公开的第三方库放到私有库中管理,而我们的是私有库MYCode_tools_repos还没有库文件,checkout MYCode_tools_repos到本地然后,我们要把封装好的代码放到这个MYCode_tools_repos文件里push git 的远程私有库中。

1.2 将私有“仓”库添加到本地

pod repo add REPO_NAME SOURCE_URL

$pod repo add MYCode_tools_repos https://gitee.com/muyushifang07/MYCode_tools_repos.git

Cloning spec repo MYCode_tools_repos from https://gitee.com/muyushifang07/MYCode_tools_repos.git

此时如果成功的话进入到~/.cocoapods/repos目录下就可以看到MYCode_tools_repos这个目录。至此第一步创建私有Spec Repo完成。
在这里插入图片描述

PS:如果有其他合作人员共同使用这个私有Spec Repo的话在他有对应Git仓库的权限的前提下执行相同的命令添加这个Spec Repo即可。

1.3 准备一个公有库:MYHexTool (因为没有git服务器,所以使用的github的共有库)

首先搜索一下公有库:pod search MYHexTool
公有库的制作:iOS架构-cocoapods之公共库的发布与集成(16)
在这里插入图片描述
公有库clone 到本地。
在这里插入图片描述
检验pod spec是否可用pod spec lint MYHexTool.podspec
在这里插入图片描述

1.4 提交到私有库MYCode_tools_repos中

向MYCode_tools_repos提交podspec首先确保podspec必须通过验证无误
Spec Repo提交podspec只需要一个命令:

$ pod repo push MYCode_tools_repos MYHexTool.podspec  #前面是本地Repo名字 后面是podspec名字

在这里插入图片描述

完成之后这个组件库就添加到我们的私有Spec Repo中了,可以进入到~/.cocoapods/repos/MYCode_tools_repos目录下查看如下:在这里插入图片描述

再去看我们的Spec Repo远端仓库,也有了一次提交,这个podspec也已经被Push上去了
在这里插入图片描述
至此,我们的这个组件库就已经制作添加完成了,使用pod search命令就可以查到我们自己的库了

1.5 使用制作好的MYHexTool

在完成这一系列步骤之后,我们就可以在正式项目中使用这个私有的Pod了只需要在项目的Podfile里增加以下一行代码即可

use_frameworks!

source 'https://gitee.com/muyushifang07/MYCode_tools_repos.git' # 私有库源
source 'https://github.com/CocoaPods/Specs.git' # 公开的第三方库源

platform :ios, '9.0'
target 'ProtocolTest' do
    
    #不带:path  的pod install 成功后会生成Pods 文件夹,里面都是远端github的库
    pod 'AFNetworking'
    pod 'MYHexTool','~>0.1.0'

end

然后执行 pod install 成功后就可以看到效果了

在这里插入图片描述
上图黄色提示:找到了多个版本的MYHexTool.因为MYHexTool是公开库,所以有两个版本。如果使用自己的git服务器的库,就不会有这个警告了。可以指定库的来源。

source 'https://github.com/CocoaPods/Specs.git' # public cocoapods specs repo
source 'https://github.com/{:user}/specs.git' # my private specs repo

platform :ios, '11.0'

target 'MyAppTarget' do
  use_frameworks!
  # any other public pod ...
  pod 'PrivatePod', :source => 'https://github.com/{:user}/specs.git'
end

https://stackoverflow.com/questions/54674682/cocopods-found-multiple-specifications-warning

友情链接:

使用Cocoapods创建私有podspec

项目管理:CocoaPods建立私有仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值