1,概述
CocoaPods是iOS,Mac下优秀的第三方包管理工具,给我们项目管理带来了极大的方便。个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过gitLib创建私有仓库来管理代码就很必要。对于CocoaPods还不太熟悉的,建议参考一下唐巧的博客
2,概念
1.code repository是代码仓库,我们把包代码上传到这个仓库。
2.spec repository是配置仓库,所有的配置按照包名、版本号分门别类的存放在这个仓库。这个仓库只用来存放.Podspec文件,不存放代码。
3,实现步骤
创建私有的CocoaPods仓库之前需要先制作CocoaPods依赖库,所以步骤分两步:
1.制作CocoaPods依赖库,也就是代码库。
2.创建私有 CocoaPods 仓库。
1.创建并设置一个私有的code Repository。
2.clone 仓库到本地
为了方便向仓库中删减内容,需要将仓库 clone 到本地,这里有多种操作方式,可以选择你喜欢的一种,但是为了方便这边选择使用命令行。首先需要切换到你想在本地存储的目录,然后再 clone :git clone http://git.yourUrl/yourAccount/CTMediator.git
这时候,库是空的只有个空文件夹,下面创建好你自己的库文件,必要的文件有.podspec、LICENSE、README.md以及代码文件,特别说明一下“.podspec”文件的格式需要严格遵循要求
1)创建 podspec文件
我们使用以下命令创建“.podspec”文件:
pod spec create CTMediator
以下是我创建的文件内容
Pod::Spec.new do |s|
s.name = "CTMediator"
s.version = "1.0"
s.summary = "A short description of caculatormaker."
s.description = <<-DESC
Testing Private Podspec.
DESC
s.homepage = "http://git.yourUrl/yourAccount/CTMediator.git"
# ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
s.license = { :type => 'MIT', :file => 'LICENSE' } #建议拷贝git上的MIT License
s.author = { "x32sky" => "zhaoyang@17guagua.com" }
s.source = { :git => "http://git.yourUrl/yourAccount/CTMediator.git", :tag => "#{s.version}" }
s.ios.deployment_target = '8.0'
s.source_files = 'CTMediator/CTMediator/*.{h,m,plist}' #这里的路径要写对
s.platform = :ios
s.requires_arc = true
s.subspec 'DM' do |ss| #需要group的时候这样搞,比如工程里有个DM文件夹
ss.source_files = 'LogCenter/LogCenter/DM/*.{h,m,mm}'
end
end
3).README.md
使用 github 的人应该都熟悉这个文件,它使一个成功的 github 仓库必不可少的一部分,使用 markdown 对仓库进行详细说明。
4).LICENSE 文件
CocoaPods 强制要求所有的 Pods 依赖库都必须有 license 文件,否则验证不会通过。 license 文件有很多中,详情可以参考 tldrlegal。前面我们已经选择创建了一个 MIT 类型的 license。建议随意拷贝一个别人的就好,大家的license都一样。
4.提交修改到code Repository
经过前面步骤,我们已将在本地的 git 仓库添加了不少文件,现在我们只要将他们提交到 gitlab上就可以。在此之前我们需要对刚才添加的 pod 进行一下验证:pod lib lint --allow-warnings
成功会显示,如果你写的很不错是不会有 WARN的
验证成功之后,我们只要把代码提交到 gitlab 仓库,就可以了,参考命令:
git add -A && git commit -m "add pod files"
git push origin master
这时候需要在gitLib上建一个Tag 版本命名为1.0(和你的podspec文件里版本号写的一样)
五、创建私有 CocoaPods 仓库
1.创建并设置一个私有的Spec Repository。我们在github上创建一个空的仓库,命名为CTMSpecs,这个仓库是用来存放我们自己所有的私有库的spec文件
pod repo add CTMSpecs http://git.jufan.tv/yourAccount/CTMSpecs.git
命令完成后~/cocopods 下会多出一个文件夹CTMSpecsCTMSpecs
如图:
这个.cocoapod文件夹是cocoapod重要的配置文件夹,是隐藏的,关于如何MAC如何显示隐藏文件夹请自行百度。
接下来的非常关键,这一步会将CTMediator.podspec文件从git上下载到上图的CTMSpecs文件夹里
pod repo push CTMSpecs CTMediator.podspec --allow-warnings
我这边命令打印如下和以上命令差不多就成功了,成功后.cocoapods文件如下
这时候其实已经成功了
使用命令可以查到这个私有库
pod search CTMediator
这时候新建一个工程,然后pod我们的新私有库
pod init 修改Podfile
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
source ‘http://git.yourUrl/youaccount/CTMSpecs.git’ #私有仓库地址
target 'CTtest' do
pod ‘CTMediator’
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for CTtest
target 'CTtestUITests' do
inherit! :search_paths
# Pods for testing
end
end
~
~
pod install后就可以用了
4.更新维护podspec。
当我们的代码变动时,首先需要更新code Repository中的.podspec 文件的版本,然后push到 Spec Repository。
来源:CSDN
作者:小饕
链接:https://blog.csdn.net/x32sky/article/details/76152966