cocoapods使用教程2:git私有库

在上一小节开发打包静态动态库中,已经介绍了怎么打包成一个framework的库,在这小节就来介绍不打包成framework,使用cocoapods来管理自己的私有组件。
其实怎么开发私有组件,跟上一小节讲的都一样,只不过最后不用打包,通过cocoapods来引用私有库,跟引用第三方开源库是一样的。

1、创建私有的CocoaPods索引仓库(Specs Repo)

这里我们先去开源中国创建一个私有的Git仓库,用来专门存放私有组件的Spec。复制git的https链接,打开终端,输入命令,添加repo,因为是私有仓库,所以会叫你输入用户名和密码。

pod repo add 私有Repo名字 GitURL
pod repo add TestSpecs https://git.oschina.net/Test/TestSpecs.git

添加完成后,使用命令可以查看cocoapods的所有仓库,是否存在我们新添加的

pod repo list #或者
pod repo

2、创建lib

创建lib这一步其实大多步骤跟之前讲的一样,只要不同的就是需要提交到远程仓库,主要还是要修改 ".,podspec"文件。
首先我们还是需要在开源中国创建一个私有的Git仓库,用来存放我们lib的代码。创建好私有的Git仓库,复制链接到Sourcetree克隆到本地。然后使用命令在终端pod lib create LibName创建初始化自己的lib。把创建出来的项目文件,除了.git文件夹之外复制到服务器端的文件夹内,提交push到远端服务器,这样服务器和本地的lib项目就关联了。
接下来就是开发lib完成,然后修改 "
.,podspec"文件,跟之前的主要不同点就是

s.source           = { :git => 'https://git.oschina.net/Test/test.git', :tag => s.version.to_s } #更改为服务器的git地址
s.version          = '0.1.0'#版本号更改

3、pod 验证 ,提交代码

当自己的lib开发完成,用xcode能编译通过,则就使用命令pod lib lint验证项目是否符合cocoapods,验证通过则提交到git,然后添加tag,tag的名字就是版本号(s.version),最后推送到服务器上。

4、提交lib的podspec文件到SpecsRepo

终端切换到lib的目录,输入命令

pod repo push 私有索引仓库 LibName.podspec --allow-warnings #这里也可以加上参数忽略警告,要不然提交不上去
cocoapods使用教程2:git私有库_第1张图片
@提交podspec文件

提交成功后,使用命令pod search LibName搜索,就可以看到刚刚提交的lib信息。

5、项目中集成Lib

到了这一步其实就跟我们平时使用pod集成开源的第三方库一样了,在Podfile文件中输入 pod '自己私有lib名字',然后在pod install就可以集成到项目中了。
如果遇到问题[!] Unable to find a specification for “LibName”,就在Podfile文件中增加source再执行pod install 命令

# Uncomment the next line to define a global platform for your project
platform :ios, '8.0'
source 'https://git.oschina.net/Test/TestSpecs.git'#自己的私有仓库
source 'https://github.com/CocoaPods/Specs.git'#官方仓库
target 'Test' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for Test
  pod 'libname'#集成自己的lib
end

6、如果不使用私有索引仓库,其他集成命令

#使用仓库中的master分支
pod 'LibName', :git => 'https://git.oschina.net/Test/test.git'
#使用仓库的某个tag
pod 'LibName', :git => 'https://git.oschina.net/Test/test.git', :tag => '0.1.0'
#使用podspec(可以是本地路径也可以是网络的)
pod 'LibName', :podspec => 'https://example.com/JSONKit.podspec'

其实我觉得也不用这么麻烦管理那么多索引仓库,直接使用podspec文件集成就好,把编写好的podspec文件跟随项目提交到git不就可以了吗?

参考:使用CocoaPods创建私有Spec Repo管理项目公共组件

你可能感兴趣的:(cocoapods使用教程2:git私有库)