最新的 CocoaPods 的使用教程 上传podspec
2016-12-01 22:18
316 查看
来源:Dely(@爱芸初见)
链接:http://www.jianshu.com/p/c6c258a7a3b8
背景
上一篇博客最新的
CocoaPods 的使用教程(一)里主要讲解了CocoPods得简单的日常使用。但是我们经常会想把自己的开源库让别人通过 pod install 来使用。网上有好多博客说如何使用Cocoapods创建私有的podspec以及如何把自己的开源库发布到CocoasPods等等,而我在看他们的时候好多写的都比较模糊、比较费解。因为我比较笨吧,经过我一步一步琢磨亲测过后,我有了一个很好地理解。在这里我尽量的详细说明一下(当然我也有很多没有考虑的地方,大家都是凡人嘛^_^,我也是烦人)
前言
这一篇博客主要讲解创建CocoaPods的私有库。希望这一篇博客能让你们少走点弯路,让你私有库灵活运用。下一篇博客会介绍创建CocoaPods的开源库。
一. 创建项目的Podspec索引文件
作用:索引作用,就是让命令能找到我们的代码(私有库或开源库)
创建命令:进入我们在工程根目录或者开源库根目录中初始化一个Podspec文件:
pod spec
create JYPodTest
该命令将在本目录产生一个名为JYPodTest.podspec文件。用编辑器打开该文件,里面已经有非常丰富的说明文档。下面介绍如何声明第三方库的代码目录和资源目录,还有该第三方库所依赖ios核心框架和第三方库。这是我的podspec文件:
Pod::Spec.new
do
|s|
s.name
= "JYPodTest"
s.version =
"0.0.1"
s.summary =
"open
souurse Test With JYPodTest."
s.homepage
= "https://git.coding.net/Dely/JYPodTest.git"
s.license =
'MIT'
s.author
= {
"Dely"
=> "jiayaoit@126.com"
}
s.platform
= :ios,
"7.0"
s.source
= {
:git
=> "https://git.coding.net/Dely/JYPodTest.git",
:tag
=> s.version
}
s.source_files =
"JYPodTest/*.{h,m}"
s.resources
= "*.jpg",
"*.md",
"*.mobileprovision"
s.frameworks =
"UIKit",
"Foundation"
end
各个参数含义:
上面的属性基本上够用,如果还想引入更多参数,请自行查看。
注意点:地址一定要写正确,各个文件的路径要写正确,
二. 创建CocoaPods的私有库
1. 把代码托管到代码托管平台上
托管在github或者coding,SVN,公司私有服务器等,选择哪一个没影响(只是一个地址)。下面我把他托管到coding上(连接快点),
我采用只是包含源代码的文件夹(如下目录结构),xcode新建工程里面包含源代码也一样,只要路径写正确就ok。
源代码目录结构.png
1.新建远程仓库:github或coding,公司内部服务器等等上都可以
远程仓库建立成功.png
2.本地文件初始化仓库
如果是xcode新建一个工程,里面包含库的源代码。xcode会自动git init初始化仓库,跳过初始化这一步
如果是只是包含源代码的文件夹,需要对这个源代码文件夹初始化如下:
//进入源代码根目录
cd
~/Desktop/JYPodTest
//git初始化
git
init
git init 初始化仓库.png
3.在库根目录下创建Podspec文件
//进入源代码根目录
cd
~/Desktop/JYPodTest
//创建Podspec文件
pod
spec create JYPodTest
创建Podspec文件.png
现在我们的目录如下:
目录多一个podspec文件.png
4.把源代码推送到远程仓库(我是coding)
库的源代码对应的远程仓库的地址为:https://git.coding.net/Dely/JYPodTest.git
//进入源代码根目录
cd
~/Desktop/JYPodTest
//添加到git得暂存区
git
add
-A
//提交到本地仓库
git
commit
-m
"first
commit"
//添加远端仓库地址
git
remote add origin https://git.coding.net/Dely/JYPodTest.git
//把本地代码推送到远端仓库
git
push
-u
origin
master
库的源代码推送到远程仓库.png
远程仓库目录.png
5.对源代码打tag,推送到远端仓库
因为下面编辑podspec文件中需要获取Git版本控制的源代码,所以我们要打上一个tag,
你也可以在podspec文件中保存你的commitid,或者分支来获取相应的源代码。不过基本上都是打tag。
//进入源代码根目录
cd
~/Desktop/JYPodTest
//新建一个tag
git
tag
0.0.1
//tag推送到远端
git
push origin
0.0.1
打tag推送到远端仓库.png
2. 编辑podspec文件
做完上面这些就可以编辑podspec文件了。最开始已经讲解了这个文件的写法。
注意:库目录的各个路径要对应,tag版本要和上面tag对应起来
podspec文件内容如下:
Pod::Spec.new
do
|s|
s.name
= "JYPodTest"
s.version =
"0.0.1"
s.summary =
"open
source Test With JYPodTest."
s.homepage
= "https://git.coding.net/Dely/JYPodTest.git"
s.license =
'MIT'
s.author
= {
"Dely"
=> "jiayaoit@126.com"
}
s.platform
= :ios,
"7.0"
s.source
= {
:git
=> "https://git.coding.net/Dely/JYPodTest.git",
:tag
=> s.version
}
s.source_files =
"JYPodTest/*.{h,m}"
s.resources
= "*.jpg",
"*.md",
"*.mobileprovision"
s.frameworks =
"UIKit",
"Foundation"
end
编辑好保存起来推送到远程仓库:
cd
~/Desktop/JYPodTest
git
add
-A
git
commit
-m
"修改pod
spec文件"
git
push origin master
3.验证Podspec文件的有效性
注意 注意:本地验证之前一定要保证我们的源代码和tag已经同步到远端仓库,否则验证会找不到相应代码和tag的。
进入根目录下验证
cd
~/Desktop/JYPodTest
pod
spec lint JYPodTest.podspec
//可以使用下面。显示具体问题。以及忽略所有警告
//pod spec lint JYPodTest.podspec --verbose --allow-warnings
podspec验证通过.png
注意:错误error一定是不可以的,必须要把错误修改掉。警告最好修改,可是使用--allow-warnings忽略警告
如果Podspec文件无效,由于问题各种各样,请Google解决!一定要保证文件的有效性哦,
有人会为我为什么根目录不要 LICENSE文件?不需要,因为我们现在是私有库哦,不要验证这些开源授权的东西。下一篇博客说道开源才会需要这个文件。
有人会问我修改了podspec文件需要推送到远端?需要。因为私有库验证会验证你远端的podspec文件
有人会问我修改了podspec文件tag需要重新打和推送到远端?不需要。除非你源代码有改动,需要重新发一个版本。
4.本地测试Podspec文件
我们可以创建一个新的项目,在这个项目的Podfile文件中直接指定刚才创建编辑好的podspec文件,看是否可用。 在Podfile中我们可以这样编辑,有两种方式
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
:path
=> '~/Desktop/JYPodTest' #
指定路径
#pod
'JYPodTest', :podspec => '~/Desktop/JYPodTest/JYPodTest.podspec' #指定podspec文件
end
然后执行pod install命令安装依赖,打开项目工程,可以看到库文件都被加载到Pods子项目中了,不过它们并没有在Pods目录下,而是跟测试项目一样存在于Development Pods/JYPodTest中,这是因为我们是在本地测试,而没有把podspec文件添加到Spec Repo中的缘故。
在项目中编写代码,测试库文件无误后就可以开始下一步了,提交podspec到Spec Repo中。
5.向Repo提交私有的podspec
1.新建一个我们保存podspec文件的远端仓库
我们的远端的podspec仓库地址为:https://git.coding.net/Dely/JYPodspec.git
远程存放podmec的仓库.jpg
2.给cocoapods添加私有repo
终端输入:
pod repo
add JYPod https://git.coding.net/Dely/JYPodspec.git
查看是否添加成功:
pod repo
list
添加成功.png
3.将JYPodTest.podspec文件添加到podspec远端仓库和本地repo/JYPod里
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
pod
repo push JYPod
~/Desktop/JYPodTest/JYPodTest.podspec
--allow-warnings
这个命令有两个作用:
第一:在本地repo/JYPod仓库添加我们的podspec文件
第二:在我们的远端存放podspec仓库里push最新的podspec文件
出线下面信息说明添加成功:
添加成功.png
此时打开本地~/.cocoapods/repos/JYPod目录查看
本地私有repo.png
远端podspec仓库也会同步过来podspec信息:
远端podspec.png
6.如何引用私有库
上面都完成的话,那我们看看能不能搜索到我忙的私有库
pod search
JYPodTest
搜索到私有库JYPodTest.png
如何使用呢?在前面本地验证的工程里修改Podfile文件如下:
source
'https://git.coding.net/Dely/JYPodspec.git'
source
'https://github.com/CocoaPods/Specs.git'
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
'~>
0.0.1' #私有库
pod
'JYCarousel',
'~>
0.0.1'
#开源库
end
注意:我们添加我们的远端podspec仓库地址时,一定一定要把开源库CococaPods的podspec的github地址写上(上一篇博客有提到)
执行pod update命令看看
pod update
工程变化:
工程变化.png
从上面项目可以看到,我们自己的库文件已经出现在Pods子项目中的Pods子目录下了,而不再是Development Pods。到现在是不是有一种成就感^_^
特别插入: 特别插入: 特别插入: 还有另一种方式引用私有库哦**
这种方式我们上一篇博客里提到过,自定义Podfile的写法里提到,这种写法必须保证根目录下有podspec文件
我们同样修改我们的测试工程的Podfile文件:
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
:git
=> 'https://git.coding.net/Dely/JYPodTest.git'
#指定私有库远程仓库地址,还可以指定tag,committed等
end
执行pod update看看效果:
pod udpate.png
这种写法比较方便,直接指定源代码的git仓库地址就可以了,也不需要在Podfile引入source的podspec的仓库地址,
这种写法维护:只要修改源代码,然后在需要发布新版本的时候打tag,更改podspec的内容推送到仓库就可以了。
缺点就是写法不美观
我们现在的项目就是采用这种引入方式^_^
7.更新维护私有库
上面已经建立好我忙的私有库了,我们不可能一直是一个版本一辈子只用一样的代码吧。所以我们要更新维护我忙的私有库源代码。
1.修改我们的私有源代码
我们对我忙的私有库做了大量大量的改动,需要发布新版本了。这里我们也大量改动一下:添加一张图片^_^
修改源代码.png
2.推送到私有库远端
我们对这个新版本打一个打tag,比如:1.0.0 ,然后push到远端仓库
修改podspec文件,根据你代码改动修改,tag和目录结构等
验证podspec有效性,跟上面一样。进行本地验证,然后在向repo提交podspec文件。验证保证通过。不通过继续修改直至通过,推送到远端私有库
pod
spec lint JYPodTest.podspec
--allow-warnings
注意 注意:本地验证之前一定要保证我们的源代码和tag已经同步到远端仓库,否则验证会找不到相应代码和tag的。
3.再次向repo提交podspec文件
验证好podspec文件有效性之后,之后就可以再次向repo提交我们的最新podspec文件了,命令和之前一样
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
pod
repo push JYPod
~/Desktop/JYPodTest/JYPodTest.podspec
--allow-warnings
添加成功.png
我们再打开目录~/.cocoapods/repos/JYPod目录下你会看到我们的仓库里多了一个1.0.0版本
repo/JYPod目录.png
我们pod search JYPodTest看下,会出现两个版本哦
pod search JYPodTest.png
我们在我们的测试项目Podfile文件引用1.0.0版本。pod update 就可以了
3.Repo 添加和删除命令
如何删除一个Spec Repo,只需要执行一条命令即可
pod repo
remove JYPod
添加Spec Repo
pod repo
add JYPod https://git.coding.net/Dely/JYPodspec.git
查看Spec repo列表
pod repo
list
如果我们要删除私有Spec Repo下的某一个podspec怎么操作呢,此时无需借助Cocoapods,只需要cd到~/.cocoapods/repos/JTPod目录下,删掉库目录
rm
-Rf
JYPodTest
然后在将Git的变动push到远端仓库即可
git
add
-A
git
commit
-m
"remove
unuseful pods"
git
push origin master
我们直接在远端podspec仓库添加库目录,我们可以再本地~/.cocoapods/repos/JTPod目录下拉取
git
pull origin master
//或者更新所有的本地podspec文件
//pod repo update
小结: 创建CocoaPods的私有库到这里页系统的讲解完了。私有库最核心的就是podspec文件,这个文件也是CocoaPods的最核心的。
三. CocoaPods私有库管理的原理
其实Cocoapods就是通过一个podspec文件来管理的,本地~/.cocoapods/repos下得各个目录(不管开源库master,私有库JYPod)。这些目录其实就是我们从远端仓库clone下来的,跟远端保持一样。我们pod search命令就会在本地目录下查找库。
只不过私有库有我们自己的podspec远端仓库,我们能pull和push,有我们自己控制。而开源库的master我们只有pull的权限而已,没啥太多东西哦,
我们pod install或者pod updateCocoaPods就会根据我们podspec文件里的配置来找到我们的源代码,然后安装我们的依赖库。
四. 常用命令汇总
1. pod spec create JYPodTest
初始化一个Podspec文件
2. pod spec lint JYPodTest.podspec
验证Podspec文件的有效性
//可以使用下面。显示具体问题–verbose。以及忽略所有警告 –allow-warnings
//pod spec lint JYPodTest.podspec –verbose –allow-warnings
3. pod repo add JYPod https://git.coding.net/Dely/JYPodspec.git
给cocoapods添加私有repo
//相当于git remote add origin https://git.coding.net/Dely/JYPodspec.git
4. pod repo list
查看Spec repo列表
5.pod repo push JYPod ~/Desktop/JYPodTest/JYPodTest.podspec –allow-warnings
//将JYPodTest.podspec文件添加到podspec远端仓库和本地repo/JYPod里
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
6. pod repo remove JYPod
删除一个Spec repo
结尾:
创建CocoaPods私有库基本上就这些内容了,不知道我的介绍你是否能理解,这东西需要自己操作学习一下,那样会理解比较深刻。下一篇博客我会介绍创建CocoaPods的开源库,把我们的开源库发布到CocoaPods上。
我的开源库喜欢请赏赐我一个star吧——–>https://github.com/Delyer/JYCarousel
链接:http://www.jianshu.com/p/c6c258a7a3b8
背景
上一篇博客最新的
CocoaPods 的使用教程(一)里主要讲解了CocoPods得简单的日常使用。但是我们经常会想把自己的开源库让别人通过 pod install 来使用。网上有好多博客说如何使用Cocoapods创建私有的podspec以及如何把自己的开源库发布到CocoasPods等等,而我在看他们的时候好多写的都比较模糊、比较费解。因为我比较笨吧,经过我一步一步琢磨亲测过后,我有了一个很好地理解。在这里我尽量的详细说明一下(当然我也有很多没有考虑的地方,大家都是凡人嘛^_^,我也是烦人)
前言
这一篇博客主要讲解创建CocoaPods的私有库。希望这一篇博客能让你们少走点弯路,让你私有库灵活运用。下一篇博客会介绍创建CocoaPods的开源库。
一. 创建项目的Podspec索引文件
作用:索引作用,就是让命令能找到我们的代码(私有库或开源库)
创建命令:进入我们在工程根目录或者开源库根目录中初始化一个Podspec文件:
pod spec
create JYPodTest
该命令将在本目录产生一个名为JYPodTest.podspec文件。用编辑器打开该文件,里面已经有非常丰富的说明文档。下面介绍如何声明第三方库的代码目录和资源目录,还有该第三方库所依赖ios核心框架和第三方库。这是我的podspec文件:
Pod::Spec.new
do
|s|
s.name
= "JYPodTest"
s.version =
"0.0.1"
s.summary =
"open
souurse Test With JYPodTest."
s.homepage
= "https://git.coding.net/Dely/JYPodTest.git"
s.license =
'MIT'
s.author
= {
"Dely"
=> "jiayaoit@126.com"
}
s.platform
= :ios,
"7.0"
s.source
= {
:git
=> "https://git.coding.net/Dely/JYPodTest.git",
:tag
=> s.version
}
s.source_files =
"JYPodTest/*.{h,m}"
s.resources
= "*.jpg",
"*.md",
"*.mobileprovision"
s.frameworks =
"UIKit",
"Foundation"
end
各个参数含义:
s.name声明库的名称
s.summary对这个库的简短说明介绍
s.version当前库的版本
s.homepage声明库的主页
s.license所采用的授权版本
s.author库的作者
s.platform库运行的平台和系统的最低版本
s.source库的仓库地址以及版本号或者committed等
s.source_files声明库的源代码的位置,库的真正路径(一般是相对路径)所以这个地方不能填错。这个目录下的文件都会进行编译。
s.resources存放我们不想参与编译的资源文件
s.frameworks声明了库所依赖的系统核心库
s.dependency我们开发的库中也可能还依赖第三方库,例如JSONKit,那么,就可以做如下声明:
s.dependency "JSONKit", "~> 1.4",如果有多个就写多个
上面的属性基本上够用,如果还想引入更多参数,请自行查看。
注意点:地址一定要写正确,各个文件的路径要写正确,
二. 创建CocoaPods的私有库
1. 把代码托管到代码托管平台上
托管在github或者coding,SVN,公司私有服务器等,选择哪一个没影响(只是一个地址)。下面我把他托管到coding上(连接快点),
我采用只是包含源代码的文件夹(如下目录结构),xcode新建工程里面包含源代码也一样,只要路径写正确就ok。
源代码目录结构.png
1.新建远程仓库:github或coding,公司内部服务器等等上都可以
远程仓库建立成功.png
2.本地文件初始化仓库
如果是xcode新建一个工程,里面包含库的源代码。xcode会自动git init初始化仓库,跳过初始化这一步
如果是只是包含源代码的文件夹,需要对这个源代码文件夹初始化如下:
//进入源代码根目录
cd
~/Desktop/JYPodTest
//git初始化
git
init
git init 初始化仓库.png
3.在库根目录下创建Podspec文件
//进入源代码根目录
cd
~/Desktop/JYPodTest
//创建Podspec文件
pod
spec create JYPodTest
创建Podspec文件.png
现在我们的目录如下:
目录多一个podspec文件.png
4.把源代码推送到远程仓库(我是coding)
库的源代码对应的远程仓库的地址为:https://git.coding.net/Dely/JYPodTest.git
//进入源代码根目录
cd
~/Desktop/JYPodTest
//添加到git得暂存区
git
add
-A
//提交到本地仓库
git
commit
-m
"first
commit"
//添加远端仓库地址
git
remote add origin https://git.coding.net/Dely/JYPodTest.git
//把本地代码推送到远端仓库
git
push
-u
origin
master
库的源代码推送到远程仓库.png
远程仓库目录.png
5.对源代码打tag,推送到远端仓库
因为下面编辑podspec文件中需要获取Git版本控制的源代码,所以我们要打上一个tag,
你也可以在podspec文件中保存你的commitid,或者分支来获取相应的源代码。不过基本上都是打tag。
//进入源代码根目录
cd
~/Desktop/JYPodTest
//新建一个tag
git
tag
0.0.1
//tag推送到远端
git
push origin
0.0.1
打tag推送到远端仓库.png
2. 编辑podspec文件
做完上面这些就可以编辑podspec文件了。最开始已经讲解了这个文件的写法。
注意:库目录的各个路径要对应,tag版本要和上面tag对应起来
podspec文件内容如下:
Pod::Spec.new
do
|s|
s.name
= "JYPodTest"
s.version =
"0.0.1"
s.summary =
"open
source Test With JYPodTest."
s.homepage
= "https://git.coding.net/Dely/JYPodTest.git"
s.license =
'MIT'
s.author
= {
"Dely"
=> "jiayaoit@126.com"
}
s.platform
= :ios,
"7.0"
s.source
= {
:git
=> "https://git.coding.net/Dely/JYPodTest.git",
:tag
=> s.version
}
s.source_files =
"JYPodTest/*.{h,m}"
s.resources
= "*.jpg",
"*.md",
"*.mobileprovision"
s.frameworks =
"UIKit",
"Foundation"
end
编辑好保存起来推送到远程仓库:
cd
~/Desktop/JYPodTest
git
add
-A
git
commit
-m
"修改pod
spec文件"
git
push origin master
3.验证Podspec文件的有效性
注意 注意:本地验证之前一定要保证我们的源代码和tag已经同步到远端仓库,否则验证会找不到相应代码和tag的。
进入根目录下验证
cd
~/Desktop/JYPodTest
pod
spec lint JYPodTest.podspec
//可以使用下面。显示具体问题。以及忽略所有警告
//pod spec lint JYPodTest.podspec --verbose --allow-warnings
podspec验证通过.png
注意:错误error一定是不可以的,必须要把错误修改掉。警告最好修改,可是使用--allow-warnings忽略警告
如果Podspec文件无效,由于问题各种各样,请Google解决!一定要保证文件的有效性哦,
有人会为我为什么根目录不要 LICENSE文件?不需要,因为我们现在是私有库哦,不要验证这些开源授权的东西。下一篇博客说道开源才会需要这个文件。
有人会问我修改了podspec文件需要推送到远端?需要。因为私有库验证会验证你远端的podspec文件
有人会问我修改了podspec文件tag需要重新打和推送到远端?不需要。除非你源代码有改动,需要重新发一个版本。
4.本地测试Podspec文件
我们可以创建一个新的项目,在这个项目的Podfile文件中直接指定刚才创建编辑好的podspec文件,看是否可用。 在Podfile中我们可以这样编辑,有两种方式
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
:path
=> '~/Desktop/JYPodTest' #
指定路径
#pod
'JYPodTest', :podspec => '~/Desktop/JYPodTest/JYPodTest.podspec' #指定podspec文件
end
然后执行pod install命令安装依赖,打开项目工程,可以看到库文件都被加载到Pods子项目中了,不过它们并没有在Pods目录下,而是跟测试项目一样存在于Development Pods/JYPodTest中,这是因为我们是在本地测试,而没有把podspec文件添加到Spec Repo中的缘故。
在项目中编写代码,测试库文件无误后就可以开始下一步了,提交podspec到Spec Repo中。
5.向Repo提交私有的podspec
1.新建一个我们保存podspec文件的远端仓库
我们的远端的podspec仓库地址为:https://git.coding.net/Dely/JYPodspec.git
远程存放podmec的仓库.jpg
2.给cocoapods添加私有repo
终端输入:
pod repo
add JYPod https://git.coding.net/Dely/JYPodspec.git
查看是否添加成功:
pod repo
list
添加成功.png
3.将JYPodTest.podspec文件添加到podspec远端仓库和本地repo/JYPod里
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
pod
repo push JYPod
~/Desktop/JYPodTest/JYPodTest.podspec
--allow-warnings
这个命令有两个作用:
第一:在本地repo/JYPod仓库添加我们的podspec文件
第二:在我们的远端存放podspec仓库里push最新的podspec文件
出线下面信息说明添加成功:
添加成功.png
此时打开本地~/.cocoapods/repos/JYPod目录查看
本地私有repo.png
远端podspec仓库也会同步过来podspec信息:
远端podspec.png
6.如何引用私有库
上面都完成的话,那我们看看能不能搜索到我忙的私有库
pod search
JYPodTest
搜索到私有库JYPodTest.png
如何使用呢?在前面本地验证的工程里修改Podfile文件如下:
source
'https://git.coding.net/Dely/JYPodspec.git'
source
'https://github.com/CocoaPods/Specs.git'
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
'~>
0.0.1' #私有库
pod
'JYCarousel',
'~>
0.0.1'
#开源库
end
注意:我们添加我们的远端podspec仓库地址时,一定一定要把开源库CococaPods的podspec的github地址写上(上一篇博客有提到)
执行pod update命令看看
pod update
工程变化:
工程变化.png
从上面项目可以看到,我们自己的库文件已经出现在Pods子项目中的Pods子目录下了,而不再是Development Pods。到现在是不是有一种成就感^_^
特别插入: 特别插入: 特别插入: 还有另一种方式引用私有库哦**
这种方式我们上一篇博客里提到过,自定义Podfile的写法里提到,这种写法必须保证根目录下有podspec文件
我们同样修改我们的测试工程的Podfile文件:
platform
:ios,
'7.0'
target
'JYTest'
do
pod
'JYPodTest',
:git
=> 'https://git.coding.net/Dely/JYPodTest.git'
#指定私有库远程仓库地址,还可以指定tag,committed等
end
执行pod update看看效果:
pod udpate.png
这种写法比较方便,直接指定源代码的git仓库地址就可以了,也不需要在Podfile引入source的podspec的仓库地址,
这种写法维护:只要修改源代码,然后在需要发布新版本的时候打tag,更改podspec的内容推送到仓库就可以了。
缺点就是写法不美观
我们现在的项目就是采用这种引入方式^_^
7.更新维护私有库
上面已经建立好我忙的私有库了,我们不可能一直是一个版本一辈子只用一样的代码吧。所以我们要更新维护我忙的私有库源代码。
1.修改我们的私有源代码
我们对我忙的私有库做了大量大量的改动,需要发布新版本了。这里我们也大量改动一下:添加一张图片^_^
修改源代码.png
2.推送到私有库远端
我们对这个新版本打一个打tag,比如:1.0.0 ,然后push到远端仓库
修改podspec文件,根据你代码改动修改,tag和目录结构等
验证podspec有效性,跟上面一样。进行本地验证,然后在向repo提交podspec文件。验证保证通过。不通过继续修改直至通过,推送到远端私有库
pod
spec lint JYPodTest.podspec
--allow-warnings
注意 注意:本地验证之前一定要保证我们的源代码和tag已经同步到远端仓库,否则验证会找不到相应代码和tag的。
3.再次向repo提交podspec文件
验证好podspec文件有效性之后,之后就可以再次向repo提交我们的最新podspec文件了,命令和之前一样
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
pod
repo push JYPod
~/Desktop/JYPodTest/JYPodTest.podspec
--allow-warnings
添加成功.png
我们再打开目录~/.cocoapods/repos/JYPod目录下你会看到我们的仓库里多了一个1.0.0版本
repo/JYPod目录.png
我们pod search JYPodTest看下,会出现两个版本哦
pod search JYPodTest.png
我们在我们的测试项目Podfile文件引用1.0.0版本。pod update 就可以了
3.Repo 添加和删除命令
如何删除一个Spec Repo,只需要执行一条命令即可
pod repo
remove JYPod
添加Spec Repo
pod repo
add JYPod https://git.coding.net/Dely/JYPodspec.git
查看Spec repo列表
pod repo
list
如果我们要删除私有Spec Repo下的某一个podspec怎么操作呢,此时无需借助Cocoapods,只需要cd到~/.cocoapods/repos/JTPod目录下,删掉库目录
rm
-Rf
JYPodTest
然后在将Git的变动push到远端仓库即可
git
add
-A
git
commit
-m
"remove
unuseful pods"
git
push origin master
我们直接在远端podspec仓库添加库目录,我们可以再本地~/.cocoapods/repos/JTPod目录下拉取
git
pull origin master
//或者更新所有的本地podspec文件
//pod repo update
小结: 创建CocoaPods的私有库到这里页系统的讲解完了。私有库最核心的就是podspec文件,这个文件也是CocoaPods的最核心的。
三. CocoaPods私有库管理的原理
其实Cocoapods就是通过一个podspec文件来管理的,本地~/.cocoapods/repos下得各个目录(不管开源库master,私有库JYPod)。这些目录其实就是我们从远端仓库clone下来的,跟远端保持一样。我们pod search命令就会在本地目录下查找库。
只不过私有库有我们自己的podspec远端仓库,我们能pull和push,有我们自己控制。而开源库的master我们只有pull的权限而已,没啥太多东西哦,
我们pod install或者pod updateCocoaPods就会根据我们podspec文件里的配置来找到我们的源代码,然后安装我们的依赖库。
四. 常用命令汇总
1. pod spec create JYPodTest
初始化一个Podspec文件
2. pod spec lint JYPodTest.podspec
验证Podspec文件的有效性
//可以使用下面。显示具体问题–verbose。以及忽略所有警告 –allow-warnings
//pod spec lint JYPodTest.podspec –verbose –allow-warnings
3. pod repo add JYPod https://git.coding.net/Dely/JYPodspec.git
给cocoapods添加私有repo
//相当于git remote add origin https://git.coding.net/Dely/JYPodspec.git
4. pod repo list
查看Spec repo列表
5.pod repo push JYPod ~/Desktop/JYPodTest/JYPodTest.podspec –allow-warnings
//将JYPodTest.podspec文件添加到podspec远端仓库和本地repo/JYPod里
//两个参数:添加的私有repo名 JYPod 将要添加的Podspec路径
6. pod repo remove JYPod
删除一个Spec repo
结尾:
创建CocoaPods私有库基本上就这些内容了,不知道我的介绍你是否能理解,这东西需要自己操作学习一下,那样会理解比较深刻。下一篇博客我会介绍创建CocoaPods的开源库,把我们的开源库发布到CocoaPods上。
我的开源库喜欢请赏赐我一个star吧——–>https://github.com/Delyer/JYCarousel
相关文章推荐
- 关于cocoapods的最新安装与使用教程
- 最新的 CocoaPods 的使用教程(一)
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- iOS CocoaPods(依赖管理)安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档
- CocoaPods安装和使用教程
- IOS开发之CocoaPods安装和使用教程
- 使用Cocoapods创建私有podspec
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程 - CocoaPods更新慢的问题
- CocoaPods安装和使用教程
- CocoaPods安装和使用教程