前言

找了这么长时间,再次开始去尝试Cocoapods了。前面已经写过一篇关于如何把自己的Github上的代码库添加Cocoapods支持。现在就让我们看一下如果搭建私有的Spec吧。

之所以构建私有Spec,是因为公司的好多东西都是通用的,有的时候也许其他的项目中也要用到,所以最好的方式就是把它构建成库,直接

pod install

就能构建到项目中来。但是按照前面说的显然是不行的,如果直接放到https://github.com/CocoaPods/Specs.git 上,那么所有人都能下载,很显然是不行的,因为有的代码是公司的机密,所以上面博客中提到的方法显然不能满足要求。这个时候搭建私有Spec就显得很有必要了。

首先,请确保你知道如何去把自己的Github上的代码库添加Cocoapods支持。因为搭建私有Spec和上述博客上的内容大同小异,但是又有很大差异。

开始

这里将从最初的开始进行介绍,包括在公司gitlab上构建项目,然后到最后的其他公司项目中使用Cocoapods引入自己构建的库。

步骤如下:

1、创建私有的Spec Repo

2、将私有Spec Repo关联到本地

3、构建自己在公司内部共享的库

4、把要共享的库添加到私有Spec Repo中

5、成功完成,开始使用

1创建私有的Spec Repo

打开公司的gitlab地址(这里以gitlab为例),然后创建一个新的Project,并命名为XXSpecs。(建议可以使用公司前缀做标示)。这个就类似于CocoaPods的Specs,只不过这个是在自己公司git上搭建的一个仓库。这个步骤应该不难,如果有问题的可以参考一下上一篇博客

2 将私有Spec Repo关联到本地

打开终端,输入命令行:

pod repo add [本地Spec Repo名称][远程Spec Repo地址]

例如我的:

pod repo add MySpecs https://xxxxxxxxxxx/zhanggui/MySpecs.git

这里的xxxxxxx就是自己公司的git地址。

此时跳转到文件夹:repos。就是:

~/.cocoapods/repos/

你就会发现除了有一个master,还有就是你自己的MySpecs:



然后切换到自己构建的私有Spec:

cd ~/.cocoapods/repos/[本地Spec Repo名称]

例如我的:

cd ~/.cocoapods/repos/MySpecs

然后执行:

pod repo lint

执行完之后,就完成了第二步。(这里执行这个命令后,我终端显示-----------------,好多,然后执行完了就行了,貌似时间有点长,请耐心等待)。

3 构建自己在公司内部共享的库

这里就是你将自己需要共享的库先在自己公司gitlab上创建工程,然后将这个工程目录下创建 .podspec(注意修改该文件里面的信息,不会可以参考上篇博客)。并且校验是否通过。通过之后将代码提交到gitlab。

ok,第三步完成。

4 把要共享的库添加到私有Spec Repo中

首先,这里你先到你要共享的工程的gitlab上添加一个Tags,记得版本号和podspec里面的版本号一致(****这里很重要****)。

更简单的完成第四步(一定要确保第三步的验证通过),执行命令:

pod repo push [本地Spec Repo名称][podspec文件路径] --allow-warnings

例如我的:

pod repo push MySpecs ~/zhanggui/MyTools.podspec --allow-warnings

成功之后应该是这样的:



这样你就可以在你的MySpecs文件夹下看到自己的MyTools了。应该是这样:



ok,第四步就完成了。

成功完成,开始使用

和原来的常规的使用cocoapods一样,只不过有点小区别,你需要在Podfile里面添加以下两句代码:

source 'http://xxxxxxxxxxx/zhanggui/MySpecs.git'

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

这里就是告诉pod install的时候查找的库来自公共库和私有库。例如我的Podfile:

source 'http://xxxxxxxxxxx/zhanggui/MySpecs.git

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

platform :ios, '8.0'

use_frameworks!

target 'MyDemo' do

pod 'Toast'

pod 'MyTools'

end

接下来就可以使用了。

三、总结

百度、Google了多篇文档,然后进行总结,终于实现构建公司私有Cocoapods库。极大地方便了代码的复用性。

如果问题,请联系:QQ:948602689

四、参考文档

1、http://devhy.com/2016/07/12/10-private-cocoapods-spec-steps/

使用私有Pod Spec的类库--提高公司开发效率的更多相关文章

  1. iOS开发——实用篇&提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  2. 提高 JavaScript 开发效率的高级 VSCode 扩展!

    原文:提高 JavaScript 开发效率的高级 VSCode 扩展! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. Quokka.js Quokka.js 是一个用于 JavaSc ...

  3. 提高你开发效率的十五个Visual Studio 2010使用技巧

    提高你开发效率的十五个Visual Studio 2010使用技巧 相信做开发的没有不重视效率的.开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS.能够对一个IDE产生依赖,说明这个ID ...

  4. legend2---开发日志11(如何提高终极开发效率)

    legend2---开发日志11(如何提高终极开发效率) 一.总结 一句话总结: 实在没必要摸索着做,直接学了做,用专门的东西来做,岂不是要省时省事很多.岂不美哉. 1.vue中的滚动字幕动画效果如何 ...

  5. 极大提高Web开发效率的8个工具和建议(含教程)

    面对复杂的 Web 应用的开发,良好的流程和工具支持是必不可少的,它们可以让日常的开发工作更加顺畅.更加高效.本文介绍了6个Web开发利器以及相关的教程,帮助你在开发.调试.集成和发布过程极大地提高效 ...

  6. 提高php开发效率的9大代码片段

    在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...

  7. <转>提高iOS开发效率的方法和工具

    介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的ID ...

  8. 提高iOS开发效率的方法和工具

    http://www.cocoachina.com/ios/20150717/12626.html 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先 ...

  9. itoo-快捷部署脚本--提高部署开发效率

     本次是第一次使用批处理文件来作为批量操作的工具,代替了人工的手动的复制,粘贴的方式,使用脚本实现了项目的启动.自动化部署,打开项目根目录.等等,提高了开发和调试的效率. 说明: 当前版本:1.0 ...

随机推荐

  1. .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决

    说真心话,Eclipse跟我们.net的VS比起来就是屌丝比高富帅,一切都是那么的难用,速度慢得我无法忍受 于是想试试Google钦点的Android Studio IDE工具,这跟ADT一样也是一套 ...

  2. The network bridge on device VMnet0 is not running

    The network bridge on device VMnet0 is not running. The virtual machine will not be able to communic ...

  3. [备忘] Automatically reset Windows Update components

    这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...

  4. c# 我所理解的 值类型 and 引用类型

    一直以来对于值类型和引用类型都只是一个模糊的概念,趁最近有空深入理解了下. 先说说值类型,在msdn上是这样介绍值类型的. 意思就是值类型直接包含值. 变量引用的位置就是值所在内存中实际存储的位置,所 ...

  5. 【JUC】JDK1.8源码分析之CountDownLatch(五)

    一.前言 分析完了CyclicBarrier后,下面分析CountDownLatch,CountDownLatch用于同步一个或多个任务,强制他们等待由其他任务执行的一组操作完成.CountDownL ...

  6. JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串、blob对象在上传

    主题: JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串.blob对象在上传. 用处: 从本地选择图片上传,如项目规定只能选择本项目文件夹下的图像上传为头像等. 主要思想: ...

  7. iis7.0上发布mvc4.0网站

    步骤如下: 1.右击需要发布的项目,在弹出的菜单中选择“发布...”选项 2.在“发布web”对话框中进行设置,配置文件名称默认为“配置文件1”可以修改为需要的名字,以便识别,也可以不改.发布方法选择 ...

  8. 用Groovy构建java脚本

    我是做工作流项目的,工作流中各个模板引擎都需要要执行一个动态业务,这些动态业务有多种实现方式,最常用的就是用户自己写一段脚本文件,然后工作流引擎执行到这里的时候,运行这个脚本文件. 这个运行脚本文件的 ...

  9. 在Mac下创建ASP.NET Core Web API

    在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...

  10. Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探

    用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方 ...