- 浏览: 233742 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lanzhiyuan:
楼主还混这里不?NSData *data = [NSURLCo ...
[转] 为UIWebView实现离线浏览 -
hyc4117:
#define OpenSSLRSAPublicKeyFile ...
IOS openssl rsa encrypt/decrypt -
guogongjun:
确实有效,不错,感谢啦大神
[转]安装openfire后admin无法登录管理控制平台 -
xiongyoudou1:
怎么办,而且你那下载的demo和你讲解的不是一样
[转] 为UIWebView实现离线浏览 -
xiongyoudou1:
有问题。执行到方法NSData *data = [NSURLC ...
[转] 为UIWebView实现离线浏览
本文转自http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/,版权归作者所有。
CocoaPods命令介绍
在上一篇文章中,已经介绍过CocoaPods的几条基本命令。pod setup用于初始化本地第三方库的Spec描述文件,所有的spec文件存都存放在~/.cocoapods目录中。pod install用来安装或删除Podfile文件声明中的第三方依赖库。下面继续介绍其它一些命令。
搜索名称包含query的类库,query可以替换为你想搜索的名字(如json),不区分大小写。也可以使用pod search --full query命令作更仔细的搜索,该命令不但搜索类库的名称,同时还搜索类库的描述文本,所以搜索速度也相对慢一些。
pod list和pod search命令只搜索存在于本地~/.cocoapods文件夹的所有第三方库,并不会连接到远程服务器。如果你要从服务器更新本地第三方库的描述文件,可以:
CocoaPods还是一个相对年轻的项目,所有的项目的Podspec文件都托管在https://github.com/CocoaPods/Specs。可能有一些库并未收录其中。下面我们通过为微博sso认证登录库编写Podspec文件来学习相关的概念。
初始化一个Podspec文件
该命令将在本目录产生一个名为weibo_ios_sdk_sso-oauth.podspec的文件。用编辑器打开该文件,里面已经有非常丰富的说明文档。下面我们介绍如何声明第三方库的代码目录和资源目录,还有该第三方库所依赖ios核心框架和第三方库。
去除所有的注释,podspec文件如下所示:
其中s.name和s.summary用来声明库的名称和一个简短的说明文档。pod search命令就是根据这两项内容作为搜索文本的。s.homepage声明库的主页,s.version库原代码的版本,s.license所采用的授权版本,s.author库的作者。
s.source 声明原代码的地址,以微博sso认证登录库为例,它托管在
对于很多第三方库而言,在发布的时候都会打上一个tag,如版本0.0.1就会打上一个名为v0.0.1的tag,但是weibo_ios_sdk_sso-oauth库还未打上所何tag,我们可以选择一个最新的commit来作为该库0.0.1版的代码。s.source最终如下:
以后我们可以根据该库不同的版本创建相应的podspec文件,例如0.0.2,0.1.0等。
让我们在浏览器中看一下weibo_ios_sdk_sso-oauth的目录结构:
demo目录保存一个示例项目,src才是库的原代码目录。src的目录结构如下:
JSONKit目录说明这个库本身依赖于JSONKit第三方库。我们可以在podspec文件中的s.dependency声明段中声明。SinaWeibo目录才是包含所有原代码的目录,我们需要在s.source_files中声明
前一部分src/SinaWeibo/是一个相对目录,目录的层级关系一定要跟代码库的保持一致。最后一部分*.{h,m}是一个类似正则表达式的字符串,表示匹配所有以.h和.m为扩展名的文件。
src/SinaWeibo/目录下还有一个SinaWeibo.bundle目录,该目录存放一些资源文件(如图片等),这些文件并不需要进行编译。可以使用s.resourcs声明
前一部分跟上面相同,**表示匹配所有子目录,*.png表示所有以.png为扩展名的图片文件。
通过查看代码我们知道,weibo_ios_sdk_sso-oauth还依赖一个ios的核心库QuartzCore
在前面我们已经说过,weibo_ios_sdk_sso-oauth库自身也依赖于另外一个第三方库JSONKit,声明如下:
这行声明与Podfile文件中的声明类似。
最终的结果如下:
可以将该spec文件保存到本机的~/.cocoapods/master/目录中仅供自己使用,也可以将其提交到CocoaPods/Specs代码库中。下面我们将其保存到本机中
是否可以通过搜索找到该库:
同样在需要依赖于weibo_ios_sdk_sso-oauth这个库的项目,可以将下列添加到项目的Podfile文件中
保存文件,并用pod install安装weibo_ios_sdk_sso-oauth库。
转载请注明原作者
CocoaPods命令介绍
在上一篇文章中,已经介绍过CocoaPods的几条基本命令。pod setup用于初始化本地第三方库的Spec描述文件,所有的spec文件存都存放在~/.cocoapods目录中。pod install用来安装或删除Podfile文件声明中的第三方依赖库。下面继续介绍其它一些命令。
$ pod list # 列出所有可用的第三方库
$ pod search query
搜索名称包含query的类库,query可以替换为你想搜索的名字(如json),不区分大小写。也可以使用pod search --full query命令作更仔细的搜索,该命令不但搜索类库的名称,同时还搜索类库的描述文本,所以搜索速度也相对慢一些。
pod list和pod search命令只搜索存在于本地~/.cocoapods文件夹的所有第三方库,并不会连接到远程服务器。如果你要从服务器更新本地第三方库的描述文件,可以:
$ pod repo update master 创建自己项目的Podspec描述文件
CocoaPods还是一个相对年轻的项目,所有的项目的Podspec文件都托管在https://github.com/CocoaPods/Specs。可能有一些库并未收录其中。下面我们通过为微博sso认证登录库编写Podspec文件来学习相关的概念。
初始化一个Podspec文件
$ pod spec create weibo_ios_sdk_sso-oauth
该命令将在本目录产生一个名为weibo_ios_sdk_sso-oauth.podspec的文件。用编辑器打开该文件,里面已经有非常丰富的说明文档。下面我们介绍如何声明第三方库的代码目录和资源目录,还有该第三方库所依赖ios核心框架和第三方库。
去除所有的注释,podspec文件如下所示:
Pod::Spec.new do |s| s.name = 'ADVProgressBar' s.version = '0.0.1' s.license = 'MIT' s.summary = 'Progress Bar Design with Percentage values.' s.homepage = 'https://github.com/appdesignvault' s.author = { 'appdesignvault' => 'appdesignvault' } s.source = { :git => 'https://github.com/appdesignvault/ADVProgressBar.git', :commit => 'f17b15c15574d6d101cd5fcfd58239e16e806647' } s.platform = :ios s.source_files = 'ADVProgressBar/Classes/*.{h,m}' s.resources = "ADVProgressBar/Resources/*.png" s.framework = 'UIKit' s.requires_arc = true end
其中s.name和s.summary用来声明库的名称和一个简短的说明文档。pod search命令就是根据这两项内容作为搜索文本的。s.homepage声明库的主页,s.version库原代码的版本,s.license所采用的授权版本,s.author库的作者。
s.source 声明原代码的地址,以微博sso认证登录库为例,它托管在
https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth中,在其未尾加上.git扩展名就是库的原代码地址了,所以该行应声明为:
s.source = { :git => 'https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git'}
对于很多第三方库而言,在发布的时候都会打上一个tag,如版本0.0.1就会打上一个名为v0.0.1的tag,但是weibo_ios_sdk_sso-oauth库还未打上所何tag,我们可以选择一个最新的commit来作为该库0.0.1版的代码。s.source最终如下:
s.source = { :git => 'https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git', :commit => '68defea78942ecc782ffde8f8ffa747872af226d'}
以后我们可以根据该库不同的版本创建相应的podspec文件,例如0.0.2,0.1.0等。
让我们在浏览器中看一下weibo_ios_sdk_sso-oauth的目录结构:
-- | +-- demo | +-- src | +-- .gitignore | +-- README.md
demo目录保存一个示例项目,src才是库的原代码目录。src的目录结构如下:
-- src | +-- JSONKit | +-- SinaWeibo | +-- sinaweibo_ios_sdk.xcodeproj | +-- SinaWeibo-Prefix.pch
JSONKit目录说明这个库本身依赖于JSONKit第三方库。我们可以在podspec文件中的s.dependency声明段中声明。SinaWeibo目录才是包含所有原代码的目录,我们需要在s.source_files中声明
s.source_files = 'src/SinaWeibo/*.{h,m}'
前一部分src/SinaWeibo/是一个相对目录,目录的层级关系一定要跟代码库的保持一致。最后一部分*.{h,m}是一个类似正则表达式的字符串,表示匹配所有以.h和.m为扩展名的文件。
src/SinaWeibo/目录下还有一个SinaWeibo.bundle目录,该目录存放一些资源文件(如图片等),这些文件并不需要进行编译。可以使用s.resourcs声明
s.resources = "src/SinaWeibo/SinaWeibo.bundle/**/*.png"
前一部分跟上面相同,**表示匹配所有子目录,*.png表示所有以.png为扩展名的图片文件。
通过查看代码我们知道,weibo_ios_sdk_sso-oauth还依赖一个ios的核心库QuartzCore
s.framework = 'QuartzCore'
在前面我们已经说过,weibo_ios_sdk_sso-oauth库自身也依赖于另外一个第三方库JSONKit,声明如下:
s.dependency 'JSONKit', '~> 1.4'
这行声明与Podfile文件中的声明类似。
最终的结果如下:
Pod::Spec.new do |s| s.name = "weibo_ios_sdk_sso-oauth" s.version = "0.0.1" s.summary = 'weibo.com sso oauth, 微博sso认证登录功能' s.homepage = "https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth" s.license = 'MIT' s.author = {'mobileresearch' => 'mobileresearch'} s.source = { :git => 'https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git', :commit => '68defea78942ecc782ffde8f8ffa747872af226d' } s.platform = :ios s.source_files = 'src/SinaWeibo/*.{h,m}' s.resources = "src/SinaWeibo/SinaWeibo.bundle/**/*.png" s.framework = 'QuartzCore' s.dependency 'JSONKit', '~> 1.4' end
可以将该spec文件保存到本机的~/.cocoapods/master/目录中仅供自己使用,也可以将其提交到CocoaPods/Specs代码库中。下面我们将其保存到本机中
$ mkdir -p ~/.cocoapods/master/weibo_ios_sdk_sso-oauth/0.0.1 $ cp weibo_ios_sdk_sso-oauth.podspec ~/.cocoapods/master/weibo_ios_sdk_sso-oauth/0.0.1
是否可以通过搜索找到该库:
$ pod search weibo
同样在需要依赖于weibo_ios_sdk_sso-oauth这个库的项目,可以将下列添加到项目的Podfile文件中
pod 'weibo_ios_sdk_sso_oauth', '0.0.1'
保存文件,并用pod install安装weibo_ios_sdk_sso-oauth库。
转载请注明原作者
发表评论
-
ios 开发技术
2015-01-09 11:59 690引用 主题:xcode 6制作动态&静态库 连接:ht ... -
ios 错误合集(updated!)
2015-01-09 11:57 763引用 错误:dyld: Library not loaded ... -
几个不错的xcode插件
2014-09-11 13:33 62501、代码补全插件 http://alcatraz.io 2、 ... -
xcode 插件目录
2014-09-11 13:14 421~/Library/Application\ Suppor ... -
GCD 倒计时
2014-08-19 10:00 963-(void)startTime{ __bloc ... -
Eventkit使用案例
2014-02-15 16:06 3153- (void)createNewEventAndNewR ... -
ios 应用内跳转到系统设置界面的最好写法
2013-04-24 11:43 10115如下是跳转到系统设置诸多界面的url prefs:roo ... -
beeframework "___gxx_personality_sj0", referenced from:错误解决
2013-04-17 13:50 1778到Bee_Precompile.h 找到如下一行: #de ... -
pod update/install git pull 443错误解决
2013-01-22 18:38 2283自从12306.cn抢票插件搞爆github服务器以后,我就再 ... -
[转]How to use NSAttributedString in iOS 6
2012-12-25 16:09 2521本文转自:http://soulwithmobiletechn ... -
mac上的小工具(updated)
2012-12-24 18:05 927mac上显示隐藏文件的命令,如果要隐藏则 -bool fals ... -
github README.md 编辑技巧小结 (updated)
2012-12-18 11:39 20211.文字连接 [文字](http://ace.ajax.org ... -
iOS 怎样更方便使用第三方框架
2012-11-29 12:45 1565管理第三方库越来越成为每个程序员的基本工作,因为每次都要去加入 ... -
CocoaPods:管理 Objective-C 專案裡頭各種 Library 關聯性最棒的方式
2012-11-26 14:53 1002介绍: 开发应用的时候第三方的库是不可缺少的,它能提高开发的 ... -
转载:用HTML5/CSS3/JS开发Android/IOS应用框架大全
2012-11-22 15:16 1204现在,用js调用本地代码已经不是一件新鲜事,已经有成熟的库来做 ... -
core data 分页查询
2012-11-07 11:26 1485NSFetchRequest *request = [[N ... -
[转]从Flurry导出数据
2012-10-17 10:51 1139有时我们需要一些详细 ... -
AFNetworking multipart upload
2012-10-12 14:52 5393+ (NSDictionary*)parametersOf ... -
IOS openssl rsa encrypt/decrypt
2012-09-29 15:15 6329对OpenSSL RSA加解密的封 ... -
AVAudioPlayer没声音
2012-09-13 19:54 2687在播放之前加上如下代码 AVAudioSession * ...
相关推荐
Spec 是一个用于创建公共 CocoaPods 规范的库。
一个命令行工具碰到podspec版本 。 特征 自动增加*.podspec版本 默认为空运行 在podspec文件中转储版本 安装 npm install -g podspec-bump 用法 从工作目录中自动查找*.podspec文件。 $ podspec-bump -h Usage: pod...
小功能:菜单栏。 练习使用Cocoapods创建公有podspec
使用Cocoapods创建私有podspec.pdf
SPEC CPU 2006 .cfg配置文件
cocoapods-packager, CocoaPods插件,它允许你从podspec生成 static 库 CocoaPods打包器 允许你从podspec中生成框架或者 static 库的CocoaPods插件。这个插件适用于那些只需要通过CocoaPods发布 pod,还可以为不使用...
如何使用spec文件
RPM包rpmbuild SPEC文件深度说明,作者写的很详细,对于想用rpm打包的同学会有帮助!
介绍了rpm工具的功能以及rpmbuild工具,详细的介绍了spec文件的书写规则以及关键部分,第二部分对一个典型的spec文件做了详细的分析。最后附加了中文的rpmbulild的MAN。
Cocoapods::RepoHg 添加 mercurial 支持以管理规范存储库简短的我们的团队一直在使用 Cocoapods 的内部分支,支持 svn、bzr 和 hg spec-repo。 由于 #1747 已关闭,我正在将该代码移植到插件中安装 $ gem install ...
一个插件,可让您轻松地从 podspec 生成工作区。 无论您是想从库的存储库中完全删除所有 Xcode 项目,还是希望能够专注于 monorepo 的一小部分,单个pod gen命令都将构建一个适合编写、运行、测试和调试的工作区...
RPM打包相关知识,典型SPEC文件分析,希望给CSDN用户带来方便。
spec cpu 2006 riscv config配置文件
详细介绍了spect文件的各类信息,非常适合初学者
电极原生CocoaPods Spec容器发布者 该发布者可用于将iOS容器的规范发布到远程Git pod规范存储库。 Git存储库提供程序应该无关紧要(GitHub,BitBucket,TFS ...)。 该发布者希望该容器作为预编译的XCFramework分发...
这个文件是英文原版的EMC Spec sheet, 有助于想要从0开始自己开发四桨机的朋友。Embedded systems programming离不开spec sheet。
SPEC CPU 介绍、测试、调优 SPEC CPU 介绍、测试、调优SPEC CPU 介绍、测试、调优SPEC CPU 介绍、测试、调优SPEC CPU 介绍、测试、调优
在CCS端首先需要使用 spec-updater 来更新 \SPECpower\PTDaemon 下的 ptd-windows-通过更新过的 ptd-windo
Display Port 1.4 spec,英文版,详细介绍Display Port 1.4协议规范