我是通过cocoachina 的一篇文章 跟着学习的 http://www.cocoachina.com/ios/20150228/11206.html

这里我简单描述下  主要还是给我自己记忆的  如果大家感兴趣可以去看看这篇文章  http://www.cocoachina.com/ios/20150228/11206.html  或者去看官网https://guides.cocoapods.org/making/using-pod-lib-create.html

我的步骤和他们有些不同  所以有哪位兄弟按我的步骤不能完成  还是去看他们写的吧  因为可能是我们现在所处的环境不同

1. 在搭建好的git环境下面创建一个仓库文件

mkdir  name  创建文件

git --bare init   初始化

2 . 创建一个类似于master的私有Spec Repo.

$ pod repo add name https://coding.net/wtlucky/WTSpecs.git  我这里直接copy的过来的 注意这里的name 和你文件的名字最好统一

此时如果成功的话进入到~/.cocoapods/repos目录下就可以看到name这个目录了。至此创建私有Spec Repo完成。

3.创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址。

先cd到要创建项目的目录然后执行

pod lib create name                name 为你的项目名称

这个时候他会问你一些问你  你的名字  你的邮箱

然后还要你选择几个选项 这里与cocoachain中的例子的选择一样1.yes;2.Specta/Expecta;3.yes;4.YY     第4点问你文件的前缀名这个你自己把握

这个完了后会给你创建一个工程 名字就是你刚刚的项目名字name

4.修改Pod所对应的podspec文件。

其实这个时候已经自动你创建好了.podspec 文件  上面步骤结束后打开的xcode 工程中有一个文件  在Podspec Metadata的文件夹下面有个以.podspec 结尾的文件

现在要修改这个文件

Pod::Spec.new do |s|

s.name             = "YPTest.iOS"

s.version          = "0.1.0"

s.summary          = "iOS文件  用于网络请求显示"

s.description      = <<-DESC

iOS文件  用于网络请求显示

iOS文件  用于网络请求显示

iOS文件  用于网络请求显示

DESC

s.homepage         = "http://www.hn122.com"

# s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"

s.license          = 'MIT'

s.author           = { "yangpingg" => "498158850@qq.com" }

s.source           = { :git => "ssh://192.168.1.105:/git/ICW/Git/YPTest.iOS", :tag => s.version.to_s }

# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

s.platform     = :ios, '7.0'

s.requires_arc = true

s.source_files = 'Classes/**/*'

s.resource_bundles = {

'YPTest.iOS' => ['Pod/Assets/*.png']

}

# s.public_header_files = 'Pod/Classes/**/*.h'

# s.frameworks = 'UIKit', 'MapKit'

# s.dependency 'AFNetworking', '~> 2.3'

end

需要填写一些必要的信息。 具体的去看那篇文章  比较详细

这条信息 说下   s.source_files = 'Classes/**/*'   我这里是在我的根目录下面建了个Classes的文件夹然后把需要用cocoapod 管理的文件放到了里面去。这个地方就是通过 .podspec  去找你的源码在那里 。想必各位都看出来的 后面的*就是正则表达式中的字符。

然后你再cd 到改文件下  应该是要经过一个Example文件夹执行pod update命令

这个时候成功了应该就是可以用了  你可以在这个工程中测试下 你的库是不是可以正常使用。功能是不是都有。

5. 该项目添加并推送到远端仓库。

git add .

git commit  -s -m "Initial commit of Library"

git remote add origin ssh://ssh://192.168.1.105:/git/ICW/Git/YPTest.iOS

git push origin master

因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag

git tag -m "first release" "0.1.0" 这里的版本有和你刚刚在.podspec 中的版本号保持一致

git push --tags

这个时候你可以验证下是否正确

pod lib lint

当你看到

-> YPTest.iOS (0.1.0)

  YPTest.iOS passed validation.

时,说明验证通过了,不过这只是这个podspec文件是合格的,不一定说明这个Pod是可以用的,我们需要在本地做一下验证.

这个想必大家都会就是在一个使用了 cocoapod 的项目中 的podfile 中添加测试下能不能用。

如果有人按我这个步骤弄,希望你玩的开心 。因为经常会越到错误。我也斗争的好久。

创建私有的cocoapod库的更多相关文章

  1. Cocoapods 创建自己的公开库、私有库

    如何创建自己的共有库 1.注册Trunk trunk需要CocoaPods 0.33版本以上,用pod --version 命令查看版本 CocoaPods版本 如果版本低,需要升级: sudo ge ...

  2. 三、Android NDK编程预备之Java jni入门创建C/C++共享库

    转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...

  3. 利用CMake自己创建OpenCV静态链接库

    1.准备工作: 1)完成Visual Studio2012安装: 2)下载并解压CMake3.5.0: 3)下载并解压OpenCV2.4.12: 4)下载并解压TBB44_20160128oss. 2 ...

  4. Ribbon2: 创建动态的Ribbon库

    Sam Radakovitz曾在Excel团队博客中发表过一篇文章,介绍了如何创建动态的Ribbon库,即如何通过RibbonX和VBA放置动态的图形图像到功能区库中,在该文中,作者创建了两个库:一个 ...

  5. 创建并使用静态库(ar 命令)

     创建并使用静态库(ar 命令)            archive命令的功能是:创建或改动归档文件或者从归档文件里析取信息.能够简单的理解为一个打包工具,将成员文件依照一定的规则构建到.a文件里, ...

  6. autotools入门笔记(二)——创建和使用静态库、动态库

    带有静态库或者动态库的工程的构建过程与上一节()只包含一个源文件的工程的构建过程是类似的.只是对于复杂的工程,如果包含多个还有源文件的目录时,需要对每个包含源文件的目录执行构建过程,另外创建和使用库文 ...

  7. # 2017-2018-2 20155228 《信息安全系统设计原理》 使用VirtualStudio2008创建和调用静态库和使用VirtualC++6.0创建和调用动态库

    使用virtual c++ 6.0创建和调用动态库 不得不说一下关于环境的问题 只要我打一个响指,一半的安装在win7上的VC6.0都会因为兼容性问题直接崩掉 懒得研究怎么解决兼容性的问题了,直接开一 ...

  8. Linux c codeblock的使用(四):创建自己的静态函数库

    从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...

  9. Linux中创建和使用静态库&动态库

    库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行 Linux下库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载入的时刻不同. 静态库的代码在 ...

随机推荐

  1. Elasticsearch入门教程

    ElasticSearch是一个高度可扩展的开源搜索引擎并使用REST API,所以您值得拥有. 在本教程中,将介绍开始使用ElasticSearch的一些主要概念. 下载并运行ElasticSear ...

  2. The same month as the adidas NMD Singapore is releasing

    Earlier this December 2017, the inaugural adidas NMD Singapore silhouette released in the first colo ...

  3. AtCoder Beginner Contest 114 Solution

    A 753 Solved. #include <bits/stdc++.h> using namespace std; ]; int main() { mp[] = mp[] = mp[] ...

  4. Linux查看网卡UUID另一方法

    转自:http://liaoronghui.com/linux-view-network-adapter-uuid-other-law.html 有时我们不小心将/etc/sysconfig/netw ...

  5. c++第二十七天

    p135~p140:1.位运算符.作用于整数类型的运算对象,并把运算对象看成是二进制的集合,提供检查和设置二进制位的功能. 2.bitest:一种可表示任意大小的二进制位集合的标准库类型. 3.关于符 ...

  6. poj1985 / poj2631(树的直径)

    poj1985 Cow Marathon 树的直径裸题 树的直径的一般求法: 任意一点为起点,dfs/bfs找出与它最远的点$u$ 以$u$为起点,dfs/bfs找出与它最远的点$v$ 则$d(u,v ...

  7. spark-sql执行流程分析

    spark-sql 架构 图1 图1是sparksql的执行架构,主要包括逻辑计划和物理计划几个阶段,下面对流程详细分析. sql执行流程 总体流程 parser:基于antlr框架对 sql解析,生 ...

  8. POJ 2337 Catenyms

    http://poj.org/problem?id=2337 题意: 判断给出的单词能否首尾相连,输出字典序最小的欧拉路径. 思路: 因为要按字典序大小输出路径,所以先将字符串排序,这样加边的时候就会 ...

  9. appium装上开始干嘛

    先写appium的启动参数啊 比如调试序列号,设备的系统版本. 什么系统. app的包名,这些代码百度上都有的,针对修改下就行.

  10. vapply

    尽管 sapply 非常方便和智能,但有时智能可能隐藏着风险.假如我们有一个数字列表:x <- list(c(1, 2), c(2, 3), c(1, 3))如果我们想得到一个向量,其中每个元素 ...