iOS CocoaPods私有库

前提条件

  • pod环境

  • 代码仓库

仓库以Coding为例,建立团队什么按下不表。

1.配置sshKey

1.png

2.新建项目

2.png
3.png
4.png

3.新建索引仓库

5.png
6.png

4.新建库/代码仓库

7.png

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目录

8.png

执行以下命令

pod lib create LiverLib

(LiverLib为工程名字)

9.png

其中prefix是文件的前缀,你可以通过打开Example目录查看其中的类文件,你会发现所有的类都加上了这个前缀,如AppDelegate变成了LIVERAppDelegate。

初始化完成后会自动打开工程。

6.替换文件

打开LiverLib-> Classes 目录,把ReplaceMe.m文件替换成你想要pod引用的文件,可以是一个framework,或者.h.m.a等文件。

例如我在这里存放了两个基类

10.png

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' => '[email protected]' }
 # 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/'
​
 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索引库

11.png

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

结果查看

12.png

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

查看效果

13.png
14.png

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

15.png

你可能感兴趣的:(iOS CocoaPods私有库)