私有pod简记
http://www.jianshu.com/p/7a82e977281c
http://www.jianshu.com/p/ddc2490bff9f
两个工程
1 代码工程
在github上创建一个空的工程, License文件记得加上. (MIT License)
git clone到本地 或 用 sourcetree 下载到本地.
1.1 在代码工程中添加所需要代码, 并生成spec文件, 注意在sourcetree加tag.(加tag后, 要再提交一个东西, 不然这个tag找不到??)
pod spec create WeLib02
或 从其他地方复制一份过来再修改.
我们在 github 上创建一个空的仓库,命名为 WeLib02Specs ,这个仓库是用来存放我们自己所有的私有库的 spec 文件,就如同官方的 https://github.com/CocoaPods/Specs 是用来存放所有官方的 specs 文件一样。
3 提交文件后再 lint
LMXMN041:WeLib04 will.wei$ pod lib lint
-> WeLib04 (0.0.1)
WeLib04 passed validation.
4 把podspec文件push到自己的spec工程库
LMXMN041:WeLib04 will.wei$ pod repo push WeLib02Specs WeLib04.podspec
Validating spec
-> WeLib04 (0.0.1)
Updating the `WeLib02Specs' repo
Already up-to-date.
Adding the spec to the `WeLib02Specs' repo
- [Add] WeLib04 (0.0.1)
Pushing the `WeLib02Specs' repo
To https://github.com/willbin/WeLib02Specs.git
6007e90..1bd83fb master -> master
LMXMN041:WeLib04 will.wei$
2 spec工程(有一个就行了, 多个代码工程也可以由这一个来处理)
在github上创建一个空的工程, License文件记得加上. (MIT License)
然后把 spec弄到本地
LMXMN041:WeLib02 will.wei$ pod repo add WeLib02Specs https://github.com/willbin/WeLib02Specs.git
Cloning spec repo `WeLib02Specs` from `https://github.com/willbin/WeLib02Specs.git`
LMXMN041:WeLib02 will.wei$
然后在这个目录就能看到你的私有spec了.
4 podfile中记得添加私有库地址
LMXMN041:WeLib03 will.wei$ pod repo push WeLib02Specs WeLib03.podspec
Validating spec
-> WeLib03 (0.0.5)
Updating the `WeLib02Specs' repo
Already up-to-date.
Adding the spec to the `WeLib02Specs' repo
- [Add] WeLib03 (0.0.5)
Pushing the `WeLib02Specs' repo
To https://github.com/willbin/WeLib02Specs.git
12a9e31..310c384 master -> master
// podfile
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source 'https://github.com/willbin/WeLib02Specs.git' #私有仓库地址
inhibit_all_warnings!
target 'GroupA' do
use_frameworks!
pod 'WeLib02'
pod 'WeLib03'
pod 'WeLib04'
end
// 升级私有库 file
1:更新代码库
2:改WeLib02.podspec中的 s.version
3:提交时加tag
4:再提交一次小改动
// 1、途中遇到了几次问题,就是pod repo push不上去,显示没有找到对应文件,后来发现是版本的问题,没有打上版本号或者Podspec中版本错了。所以我们在维护一个框架时,修改框架之后,push到git服务器之后先打上tag,然后再修改podspec文件中的版本,最后push到对应的pod repo中。如果你遇到这个问题,可以详细查看第三步中的验证并推送到服务器这一节。
5:在WeLib02.podspec目录中运行
pod repo push WeLib02Specs WeLib02.podspec
6:试一下 pod search , 应该有新的版本了
// 新电脑如何搜索到私有库
库的搜索都是基于 ~/.cocoapods/repos 的,如果你的spec还没下载过来那就没法搜索到
可以先在某工程的pod file中添加私有库, pod install后, 就会出现了
// 如果 搜索不到新的pod库, 但安装 可以, 需要清理一下
Can you try removing search_index.json and run search command again? I'd be happy if you send the output of the command again.
rm ~/Library/Caches/CocoaPods/search_index.json
pod search AFNetworking
私有pod简记的更多相关文章
- 使用私有Pod Spec的类库--提高公司开发效率
前言 找了这么长时间,再次开始去尝试Cocoapods了.前面已经写过一篇关于如何把自己的Github上的代码库添加Cocoapods支持.现在就让我们看一下如果搭建私有的Spec吧. 之所以构建私有 ...
- 如何创建私有pod三方库
1.先登录github或者开源中国码云,创建远程仓库,用来存放库文件代码 仓库创建完成,得到远程仓库地址,并保存备用 2.创建本地代码库 打开终端,cd到你想创建的文件夹下,使用命令:pod lib ...
- 私有Pods封装个推SDK功能(解决方案)
一:运用场景 公司中同时有好几个APP在开发,而且每个APP都有使用到集成个推SDK来处理消息的功能,以前的做法是每个APP都去集成并在AppDelegate处理一些SDK的代码,包含个推基础配置.消 ...
- iOS组件化开发一pod库包含MRC的文件处理(五)
在做项目的过程中,建立了一个私有pod库,在这个库中存在mrc类文件这个时候如果在使用了arc的工程中引用这个pod的工程中手动设置当然也可以就是费时费力.现在我们来看看如何在私有库配置文件里配置自动 ...
- 创建Cocoapods私有库
本文以自己在公司做的一个手势密码私有库GesturePasswordKit为例说明. 1.在gitlab(或者github,我这里使用的例子是在gitlab上)上创建git仓库 (确保授权正确,避免后 ...
- iOS关于模块化开发解决方案(纯干货)
关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦.路由.封装.私有Pod管理等内容:并编 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- IOS开发基础知识--碎片41
1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fi ...
- 把自己Github上的代码添加Cocoapods支持
转载请注明原链接:http://www.cnblogs.com/zhanggui/p/6003481.html 一.前言 这两天被cocoapods折磨的心力憔悴.看cocoapods官网的添加支持, ...
随机推荐
- 【Entity Framework】 Entity Framework资料汇总
Fluent API : http://social.msdn.microsoft.com/Search/zh-CN?query=Fluent%20API&Refinement=95& ...
- JSP图片上传 公共工具类
需要jsmartcom_zh_CN.jar支持. 下载地址: http://files.cnblogs.com/simpledev/jsmartcom_zh_CN.rar <%@page imp ...
- Appium环境配置
一.JDK下载.安装及其环境配置 1.下载.安装略过…… 2.环境配置,以jdk-8u45为例,默认安装在 C:\Program Files\Java\jdk1.8.0_45\路径下. 下面设置环境变 ...
- ****Git 常用命令和使用思维导图
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. 本来想着只把最有用.最常用的 Git 命令记下来,但是总觉得这个也挺有用.那个也用 ...
- struts2学习笔记(4)——数据类型转换
回过头来看昨天的那个例子. 在昨天的例子中,只转换了一个Point类,如果想转换多个Point类怎么办呢?在昨天的例子上面做一个小的修改. 首先在input.jsp页面中修改几个输入框. <s: ...
- DP:LCS(最长公共子串、最长公共子序列)
1. 两者区别 约定:在本文中用 LCStr 表示最长公共子串(Longest Common Substring),LCSeq 表示最长公共子序列(Longest Common Subsequence ...
- 【nginx运维基础(2)】Nginx的配置文件说明及虚拟主机配置示例
配置文件说明 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为当前主机的CPU总核心数. worker_processes 8; #全局错误日志定义类型, ...
- 是什么让 Ubuntu 选用 Qt 而不是 GTK?
是什么让 Ubuntu 选用 Qt 而不是 GTK? 一个正在发生的事实,Ubuntu正在不断Qt化!我曾一直在抱怨的Software Center,今日一看源码,竟然有softwarecenter/ ...
- jQuery插件开发(转)
jQuery插件开发 - 其实很简单 [前言]jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件,经常 ...
- 未能加载文件或程序集“Interop.jmail”或它的某一个依赖项
未能加载文件或程序集“Interop.jmail”或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中 ...