前提条件
pod环境
代码仓库
仓库以Coding为例,建立团队什么按下不表。
1.配置sshKey
2.新建项目
3.新建索引仓库
4.新建库/代码仓库
5.搭建本地的私有索引库
首先把刚刚新建的私有库克隆到本地
git clone https://e.coding.net/livermorecoding/liver/LiverSpec.git
(地址换成自己的,记住是存放索引这个)
添加本地索引库
pod repo add LiverSpec https://e.coding.net/livermorecoding/liver/LiverSpec.git
(LiverSpec 为 repo的名,如CocoaPods自带的master)
查看是否添加成功了
pod repo
可以查看到刚刚我们添加的LiverSpec索引库了
LiverSpec
Type: git (master)
URL: https://e.coding.net/livermorecoding/liver/LiverSpec.git
Path: /Users/zhanghuan/.cocoapods/repos/LiverSpec
6.搭建Pod私有库所需要的项目工程
先克隆仓库到本地
git clone https://e.coding.net/livermorecoding/liver/LiverLib.git
(地址换成自己的,记住是存放自己想要存放pod引用文件的这个库)
再自己找一个目录,通过CocoPods的官方命令创建Pod项目工程
以我为例,cd 到podlib目录
执行以下命令
pod lib create LiverLib
(LiverLib为工程名字)
其中prefix是文件的前缀,你可以通过打开Example目录查看其中的类文件,你会发现所有的类都加上了这个前缀,如AppDelegate变成了LIVERAppDelegate。
初始化完成后会自动打开工程。
6.替换文件
打开LiverLib-> Classes 目录,把ReplaceMe.m文件替换成你想要pod引用的文件,可以是一个framework,或者.h.m.a等文件。
例如我在这里存放了两个基类
7. 修改.podspec
Pod::Spec.new do |s|
s.name = 'LiverLib'
s.version = '0.1.0'
s.summary = 'description of LiverLib.'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
# homepage要有效
s.homepage = 'https://www.baidu.com'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'zh' => '949077140@qq.com' }
# source是之前要做的pod的引用库地址
s.source = { :git => 'https://e.coding.net/livermorecoding/liver/LiverLib.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '9.0'
s.source_files = 'LiverLib/Classes/**/*'
8.校验LiverLib.podspec 是否有效
pod lib lint LiverLib.podspec --sources=https://cdn.cocoapods.org/,https://e.coding.net/livermorecoding/liver/LiverSpec.git
这里需要添加--sources,指明校验的源为自己的spec索引库
9. 关联远程仓库
把通过pod lib create 建立的模板工程的.git 文件替换为第四部创建的自己使用的pod引用库.git文件,目的在于关联当前的项目到私有库。
我这里是podlib下的LiverLib工程.git 替换为与podlib同级的LiverLib下的.git文件。
10. 提交工程,打tag
cd到模板工程,提交代码,并打tag,注意版本的一致性,git tag 版本和LiverLib.podspec中的版本一致
git add --all
git commit -m"工程提交"
git push
git tag "0.1.0"
git push --tags
结果查看
11.添加自己的spec source
pod repo add LiverSpec https://e.coding.net/livermorecoding/liver/LiverSpec.git
LiverSpec为pod repo 查看到的我们自己新建的repo名称,后面地址为私有的spec仓库
12. 把本地的私有库推送到远程
pod repo push LiverSpec LiverLib.podspec --sources=https://cdn.cocoapods.org/,https://e.coding.net/livermorecoding/liver/LiverSpec.git
查看效果
12.验证一把
方式一:
pod search LiverLib
方式二:
新建工程,修改podfile文件
source 'https://cdn.cocoapods.org'
source 'https://e.coding.net/livermorecoding/liver/LiverSpec.git'
use_frameworks!
platform :ios, '10.0'
target 'PodApp' do
pod 'LiverLib', '0.1.0'
end
pod install