使用Cocoapods创建私有podspec

最初

开发 iOS 项目不可避免地要使用第三方开源库,引用方式基本有两种

方式一、直接拖拽进工程。

方式二、CocoaPods 管理。

我们在Github或Coding创建一个仓库,放置我们的库代码,目录结构就成了这样的

使用Cocoapods创建私有podspec_第1张图片

用的时候clone下来,拖进工程。以为方式一

正文 

方式二引入库,就是用pod install 的引入。所以需要在这个库的根目录下有个同名的podspec文件,目录结构就成了这样。

使用Cocoapods创建私有podspec_第2张图片

podspec的作用,就是pod install的时候告诉pod应该怎么引入这个库。这个文件里有些参数需要设置。


使用Cocoapods创建私有podspec_第3张图片

配置 Podfile,然后安装。


使用Cocoapods创建私有podspec_第4张图片

至此就可以用pod install引入我们的库了。

Pod 自动创建工程

可以用命令行自动完成创建库文件,测试工程,podspec的步骤。

终端输入 pod lib create TestPrivateCodeRepo,CoccoaPods 会问几个问题

要使用的语言

是否需要样例工程

是否需要一个测试框架

是否需要基于 View 的测试

还有类的前缀

然后自动打开创建好的工程。

使用Cocoapods创建私有podspec_第5张图片

把组件相关的类放到工程中,这个路径是podspec文件配置的时候指定的。


使用Cocoapods创建私有podspec_第6张图片

cd 到 TestPrivateCodeRepo根目录下,将此版本资源文件push,并打上标签(标签用来pod install 指定的版本)

pod add . //添加所有文件

pod commit -am "descrube " //放到缓存区准备push

本地git库是直接pod lib create TestPrivateCodeRepo生成的,相当于直接 git init出来的,还没有链接到远程库。

pod remote add origin https://git.coding.net/jxlucky/TestPrivateCodeRepo.git

pod pull <库地址> master

pod status //看一下状态有东西要提交

pod add .

pod commit -am "f c 1"

pod push origin master 

pod tag -m "tag describe" 0.1.0 //打标签

pod push --tags //push 标签

本地验证podspec

cd Example

修改Podfile文件


使用Cocoapods创建私有podspec_第7张图片

pod install

至此可以用pod install 的形式引入我们自己的库了

注意:我们的工作工程Podfile里要这样修改

pod 'TestPrivateCodeRepo', :git =>'git地址',"tag => '0.1.0'

不能直接用pod'TestPrivateCodeRepo', :podspec =>'../TestPrivateCodeRepo.podspec'

发布 podspec

创建spec库,spec库就相当于一个配置文件库,直接在Github或Coding创建一个空白库就行了。

pod repo add TestSpecs 远程Spec库的git地址 //它的作用相当于创建一个空目录TestSpecs,在里面git clone 远程Spec库的git地址

cd 到TestPrivateCodeRepo根目录,验证podspec

pod lib lint TestPrivateCodeRepo.podspec

验证顺利的话将podspec发布

pod repo push TestSpecs TestPrivateCodeRepo.podspec

此时远程Spec库和本地~/.cocoapods/repos/TestSpecs路径下都得到了更新。

测试

新建工程》pod init >>编辑Podfile

source 'https://github.com/CocoaPods/Specs.git'

source '我们自己的spec库.git'

use_frameworks!

target 'AnProject' do

pod 'TestPrivateCodeRepo'

end

最后,

当所用TestSpecs有更新时执行 pod repo update TestSpecs,同步远程spec库到本地



遇到问题

一、pod search 时出现[!] Unable to find a pod with name, author, summary, or description matching

解决:rm ~/Library/Caches/CocoaPods/search_index.json 然后重新搜索


二、[!] The repo `MySpecs` at `../../../.cocoapods/repos/MySpecs` is not clean 错误

解决:cd ~/.cocoapods/repos/MySpecs,git clean -f


友情链接:

blog.wtlucky.com/blog/2015/02/26/create-private-podspec/

www.open-open.com/lib/view/open1469488701199.html

你可能感兴趣的:(使用Cocoapods创建私有podspec)