创建私有的cocoapod库
我是通过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库的更多相关文章
- Cocoapods 创建自己的公开库、私有库
如何创建自己的共有库 1.注册Trunk trunk需要CocoaPods 0.33版本以上,用pod --version 命令查看版本 CocoaPods版本 如果版本低,需要升级: sudo ge ...
- 三、Android NDK编程预备之Java jni入门创建C/C++共享库
转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...
- 利用CMake自己创建OpenCV静态链接库
1.准备工作: 1)完成Visual Studio2012安装: 2)下载并解压CMake3.5.0: 3)下载并解压OpenCV2.4.12: 4)下载并解压TBB44_20160128oss. 2 ...
- Ribbon2: 创建动态的Ribbon库
Sam Radakovitz曾在Excel团队博客中发表过一篇文章,介绍了如何创建动态的Ribbon库,即如何通过RibbonX和VBA放置动态的图形图像到功能区库中,在该文中,作者创建了两个库:一个 ...
- 创建并使用静态库(ar 命令)
创建并使用静态库(ar 命令) archive命令的功能是:创建或改动归档文件或者从归档文件里析取信息.能够简单的理解为一个打包工具,将成员文件依照一定的规则构建到.a文件里, ...
- autotools入门笔记(二)——创建和使用静态库、动态库
带有静态库或者动态库的工程的构建过程与上一节()只包含一个源文件的工程的构建过程是类似的.只是对于复杂的工程,如果包含多个还有源文件的目录时,需要对每个包含源文件的目录执行构建过程,另外创建和使用库文 ...
- # 2017-2018-2 20155228 《信息安全系统设计原理》 使用VirtualStudio2008创建和调用静态库和使用VirtualC++6.0创建和调用动态库
使用virtual c++ 6.0创建和调用动态库 不得不说一下关于环境的问题 只要我打一个响指,一半的安装在win7上的VC6.0都会因为兼容性问题直接崩掉 懒得研究怎么解决兼容性的问题了,直接开一 ...
- Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...
- Linux中创建和使用静态库&动态库
库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行 Linux下库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载入的时刻不同. 静态库的代码在 ...
随机推荐
- 1124 Raffle for Weibo Followers[简单]
1124 Raffle for Weibo Followers(20 分) John got a full mark on PAT. He was so happy that he decided t ...
- mysql key index区别
看似有差不多的作用,加了Key的表与建立了Index的表,都可以进行快速的数据查询.他们之间的区别在于处于不同的层面上. Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key), ...
- ABP常见问题
System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误 解决方案:最新的ABP默认支持的是sql2012以上的版本,对于之前 ...
- keras实现不同形态的模型
keras提供了Sequential线性的模型,但是有些网络需要多个输入,有些网络有多个输出,更甚之层与层之间有内部分支,这使得网络看起来像是层构成的图,而不是线性的堆叠.有些场景需要多模态的输入,这 ...
- mac3.0环境搭建
export ANDROID_SDK_ROOT=/Users/sjxxpc/Documents/ADT/sdk export ANDROID_NDK_ROOT=/Users/sjxxpc/Docume ...
- 系统管理命令之last
Linux系统中使用以下命令来查看文件的内容: cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl 显示的时候,顺道输出行号! mor ...
- python学习之【16】网络编程
主题 客户端/服务器架构 套接字:通信终点 套接字地址 面向连接与无连接套接字 Python中的网络编程 SOCKET模块 套接字对象方法 TCP/IP客户端和服务器 UDP/IP客户端和服务器 So ...
- UI自动化测试框架之Selenium关键字驱动
一.原理及特点 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要关键字包括三类:被操作对象(Item).操作(Operation)和值(value),用面向对象形式可将其表现为Item.O ...
- 20145325张梓靖 《Java程序设计》第16周课程总结
20145325张梓靖 <Java程序设计>第16周课程总结 实验报告链接汇总 实验一 "Java开发环境的熟悉" 实验二 "Java面向对象程序设计&quo ...
- Applet初次使用
ZLYD团队Apllet学习笔记 初识Applet Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.J ...