我是通过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. Spring源码解析(四)Bean的实例化和依赖注入

    我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢.其实一共有两个触发点,但是最后实际上调用的是同一个方法. 第一个:在AbstractAppli ...

  2. Django:学习笔记(9)——视图

    Django:学习笔记(9)——视图 基础视图 基于函数的视图,我们需要在使用条件语句来判断请求类型,并分支处理.但是在基于类的视图中,我们可以在类中定义不同请求类型的方法来处理相对应的请求. 基于函 ...

  3. 浅谈history对象以及路由插件原理

    简介 History对象最初设计用来表示窗口的浏览历史,但是,出于隐私方面的原因,History对象不再允许脚本访问已经访问过的实际URL.虽然,我们不清楚历史URL,但是,我们可以通过History ...

  4. Python基础笔记之同时装了Python3和Python2,怎么在命令行使用pip

    我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面.这个启动器允许我们指定使用Python2还是 ...

  5. python常见容器属性和方法

    `````字符串中反斜杠字符表 转义格式    意义 \'  单引号(') \"  双引号(") \\  反斜杠(\ ) \n  换行 \r  返回光标至行首 \f  换页 \t ...

  6. JAVA8新特性——Lamda表达式

    JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ Lamda表达式,读作λ表达式,它实质属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类. 先来看看传统的匿名 ...

  7. DataContract with Json.Net

    https://www.newtonsoft.com/json/help/html/DataContractAndDataMember.htm 如果class使用了DataContract,name没 ...

  8. calcite介绍

    前言 calcite是一个可以将任意数据查询转换成基于sql查询的引擎,引擎特性也有很多,比如支持sql树的解析,udf的扩展,sql执行优化器的扩展等等.目前已经被很多顶级apache项目引用,比如 ...

  9. C# .NET 开发心得

    1. 工作路径问题 1. 多项目构成的解决方案,Web APP作为启动项目时的工作路径 //当前执行的exe文件名 //C:\\Program Files\\IIS Express\\iisexpre ...

  10. HDU 6038 Function(思维+寻找循环节)

    http://acm.hdu.edu.cn/showproblem.php?pid=6038 题意:给出两个序列,一个是0~n-1的排列a,另一个是0~m-1的排列b,现在求满足的f的个数. 思路: ...