CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便。

[个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。]

  对于CocoaPods还不太熟悉的,建议参考一下唐巧的博客或者直接到CocoaPods的官网看看:https://cocoapods.org/

CocoaPods默认只能管理基于git管理的代码,如果要使用svn或者mercurial管理代码,则需要安装一些插件

以下方法都是基于git来操作。

1.创建代码仓库

将自己写的代码推送到git服务器。如果代码可以开源的话,可以用github来托管。参考我们所开源的代码

2.给稳定的代码打上版本tag,一般以版本号作为tag名

$ git tag -a

将tag推送到git服务器

$ git push --tags

这里一般是类似1.0.2的版本号。版本号的规范参考这里

3.创建spec文件

在shell中运行:

$ pod spec create

会在当前目录创建.podspec文件,创建的文件是个完整的配置模板,根据字面意思以及注释,大体上都能弄明白。不清楚的地方可以到https://guides.cocoapods.org/making/specs-and-specs-repo.html看看,github上也有很多开源代码可以参考。

4.验证spec文件有效性

spec文件修改完成后,运行

$ pod spec lint .podspec

根据输出提示修改你的spec文件或者代码,直到能pass.

5.创建spec repository(spec 仓库)

除了上面创建的代码仓库,还需要创建一个spec仓库,存放spec,目录结构应该遵照以下的规范:

[plain] view plaincopy

├── Specs  

    └── [SPEC_NAME]  

        └── [VERSION]  

            └── [SPEC_NAME].podspec

例:

├─Specs

├──QueryKit/

├── 0.8.0

│   └── QueryKit.podspec

├── 0.8.1

│   └── QueryKit.podspec

├── 0.8.2

│   └── QueryKit.podspec

└── 0.8.3

└── QueryKit.podspec

URITemplate

├── 1.0.0

│   └── URITemplate.podspec

└── 1.0.1

└── URITemplate.podspec

这里的版本号要和代码仓库里的tag一一对应。

将其推送到git服务器,参考我们开源的代码

6.添加私有repo到CocoaPods中

$ pod repo add REPO_NAME SOURCE_URL

7.验证私有repo安装无误:

$ cd ~/.cocoapods/repos/REPO_NAME  

$ pod repo lint .

后面如果还要往REPO_NAME里添加新包,只需运行下面命令:

$ pod repo push REPO_NAME SPEC_NAME.podspec

如要删除私有repo:

$ pod repo remove [name]

8.添加包到工程的Podfile中如下:

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

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

platform :ios, "7.0"
   
target "XXX" do  

pod 'DLSlideView','~>0.8.1'  

end

9. That's it!

接下来测试运行:

到工程目录下运行

$ pod update

依赖包更新完毕后,打开workspace文件,点击Go!

一些坑:

1、很容易把spec repository和代码repository弄混,我一开始就在这里挂起了好久。代码repository是代码仓库,我们把包代码上传到这个仓库。

2、spec repository是配置仓库,所有的配置按照包名、版本号分门别类的存放在这个仓库。这个仓库只用来存放spec文件,不存放代码。、

3、spec repository可以放在本地,不用git服务器,但是貌似必须用git init初始化这个目录。

详细的一些东西可以看这里

PS:1到8步都只需在本机执行一次,团队里的其他人只需更新Podfile就可以直接使用私有仓库了。

|--> Copyright (c) 2015 Bing Ma.

|--> GitHub RUL: https://github.com/SpongeBob-GitHub

CocoaPods 建立私有仓库的更多相关文章

  1. CocoaPods建立私有仓库

    项目管理:CocoaPods建立私有仓库 2015-05-08 10:22 编辑: lansekuangtu 分类:iOS开发 来源:agdsdl 0 6367 CocoaPods项目管理私有仓库 招 ...

  2. 项目管理:CocoaPods建立私有仓库

    CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便. 个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开 ...

  3. CocoaPods 创建私有仓库

    这里有个坑首先需要注意,创建私有cocoapods仓库需要两个git仓库,即代码仓库,Specs文件仓库. 一.创建私有库 1.创建自己源码仓库,假设是A.git; 2.对A仓库: git add . ...

  4. docker 建立私有仓库,24.205为镜像仓库所在主机

    一.下载registry #yum install -y python-devel libevent-devel python-pip gcc xz-devel #python-pip install ...

  5. 搭建docker私有仓库,建立k8s集群

    服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...

  6. Docker 私有仓库建立(加密和用户验证)

    (一)生成证书1.mkdir /certs2.cd /certs 3.生成自签名证书 sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days ...

  7. CocoaPods创建私有pods

    由于项目需求,需要把项目的不同模块拆分出来即 组件化 ,一开始想做成多target模式,后来换成私有pods CocoaPods的安装和使用,网上很多,自行搜索即可. 听说可以基于svn创建pod私有 ...

  8. Pod 私有仓库构建

    Pod 私有仓库构建 创建`私有仓库索引库`(iOS) 添加`私有仓库索引库`到本地repo管理 创建自己的`组建库工程 上传`组建库工程`到`私有仓库索引库` App工程调用`组建库工程` 目的 私 ...

  9. [maven] 使用Nexus创建maven私有仓库

    1.为什么需要maven私有仓库? 从Maven中央仓库下载所需的jar包,需要外网的支持.如果公司不能上外网的话则不能从中央仓库下载所需jar包,公司网速慢的时候也会影响项目构建的速度.用户可以用n ...

随机推荐

  1. 菜鸟教程工具(三)——Maven自己主动部署Tomcat

    书连接至背面,在博客上,他介绍了如何使用Maven该项目包,这篇文章说,关于如何使用Maven会踢war部署包Tomcat.而不是手动copy过去. 眼下比較流行的方式有两种:一种是利用Tomcat官 ...

  2. hibernate它5.many2one单向

    关系数据库表之间的关系: 1 正确 1 1 正确 许多 许多 正确 许多 表间关系设计 基于主键关联 基于外键关联 基于中间表 1 对 1关系实现: 基于主键关联 基于外键关联 基于中间表 1 对 多 ...

  3. [Cocos2d-x]在Cocos2d-x 3.x如何通过版本号WebSocket连接server数据的传输

    WebSocket 首先新建一个空的目录,通过npm安装nodejs-websocket: npm install nodejs-websocket 新建app.js文件: var ws = requ ...

  4. MySql分析算法作品索引(马上,只是说说而已B-tree)

    刚开始学习的时候,百度搜索.但我发现很难理解了很多的太复杂,各种物品的整合总结(建议可能看到的文字,我不明白也没关系,再看看操作步骤图,然后结合文,所以,一切都清楚了很多) B-tree.B这是bal ...

  5. 使用RESTClient插件数据模拟(GET,POST)提交

    1:在Firefox下载RESTClient插件安装 2:安装界面后, 3:点击设置头文件:(设请求地址有头部文件) 4:设置界面,当然有非常多选择.依据你的须要.一般在输入的时候有智能提示,我这里以 ...

  6. C# 抽象类其中创建一个静态方法

    </pre><pre name="code" class="csharp"><span style="font-size ...

  7. cocos2d-x3.0 解释具体的新的物理引擎setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()

    转载请注明出处:游戏开发实验室http://blog.csdn.net/u010019717/article/details/32942641 我在编写游戏的时候遇到了这个问题.  物理引擎其它的内容 ...

  8. PC远程调试设备(转)

    我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题——调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...

  9. ios 串

    1.是推断包括字符串 if( [str rangeOfString:@"hello"].location != NSNotFound) { NSLog(@"yes&quo ...

  10. Catalan数总结

    财产: 前20条目:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ...