- 浏览: 236434 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 738引用 主题:xcode 6制作动态&静态库 连接:ht ... -
ios 错误合集(updated!)
2015-01-09 11:57 794引用 错误:dyld: Library not loaded ... -
几个不错的xcode插件
2014-09-11 13:33 63171、代码补全插件 http://alcatraz.io 2、 ... -
xcode 插件目录
2014-09-11 13:14 454~/Library/Application\ Suppor ... -
GCD 倒计时
2014-08-19 10:00 1005-(void)startTime{ __bloc ... -
Eventkit使用案例
2014-02-15 16:06 3196- (void)createNewEventAndNewR ... -
ios 应用内跳转到系统设置界面的最好写法
2013-04-24 11:43 10160如下是跳转到系统设置诸多界面的url prefs:roo ... -
beeframework "___gxx_personality_sj0", referenced from:错误解决
2013-04-17 13:50 1837到Bee_Precompile.h 找到如下一行: #de ... -
pod update/install git pull 443错误解决
2013-01-22 18:38 2347自从12306.cn抢票插件搞爆github服务器以后,我就再 ... -
[转]How to use NSAttributedString in iOS 6
2012-12-25 16:09 2609本文转自:http://soulwithmobiletechn ... -
mac上的小工具(updated)
2012-12-24 18:05 1013mac上显示隐藏文件的命令,如果要隐藏则 -bool fals ... -
github README.md 编辑技巧小结 (updated)
2012-12-18 11:39 20631.文字连接 [文字](http://ace.ajax.org ... -
iOS 怎样更方便使用第三方框架
2012-11-29 12:45 1607管理第三方库越来越成为每个程序员的基本工作,因为每次都要去加入 ... -
CocoaPods:管理 Objective-C 專案裡頭各種 Library 關聯性最棒的方式
2012-11-26 14:53 1040介绍: 开发应用的时候第三方的库是不可缺少的,它能提高开发的 ... -
转载:用HTML5/CSS3/JS开发Android/IOS应用框架大全
2012-11-22 15:16 1256现在,用js调用本地代码已经不是一件新鲜事,已经有成熟的库来做 ... -
core data 分页查询
2012-11-07 11:26 1527NSFetchRequest *request = [[N ... -
[转]从Flurry导出数据
2012-10-17 10:51 1175有时我们需要一些详细 ... -
AFNetworking multipart upload
2012-10-12 14:52 5431+ (NSDictionary*)parametersOf ... -
IOS openssl rsa encrypt/decrypt
2012-09-29 15:15 6379对OpenSSL RSA加解密的封 ... -
AVAudioPlayer没声音
2012-09-13 19:54 2730在播放之前加上如下代码 AVAudioSession * ...
相关推荐
本项目名为"swift-小功能菜单栏",主要关注使用CocoaPods来创建一个公开可用的podspec文件,使得这个菜单栏组件能够方便地在其他项目中被引用和集成。 首先,我们需要理解CocoaPods是什么。CocoaPods是iOS、macOS...
Cocoapods是iOS开发中广泛使用的一个依赖管理工具,由Ruby编写的,用于管理项目中所依赖的第三方库。Cocoapods通过一个名为Podfile的配置文件来定义项目所需的库,然后执行“pod install”命令来下载这些库,并将...
CocoaPods是一个Ruby编写的工具,它的主要功能是管理iOS和macOS项目中的依赖库,即所谓的"Pods"。CocoaPods能够自动化处理库的配置,包括编译设置、链接器选项,甚至在ARC环境下的非ARC配置。此外,它还提供了一个...
在CI环境中,每次构建都需要下载并解析CocoaPods的Podspec文件,这是一个耗时的过程,尤其是在大型项目或频繁构建的情况下。CocoaCache通过缓存常用的Podspec,避免了重复下载,从而显著提升了构建效率。 关于...
`DynamicFontTextView` 是一个用Swift语言编写的CocoaPods库,专为快速实现动态字体大小调整而设计。这个库的目标是帮助开发者轻松集成一个可自动适应用户系统字体大小设置的文本视图,从而提升应用的无障碍性和可用...
完成后,你需要为你的私有库创建一个podspec文件,这是CocoaPods用来描述库信息的元数据文件。在项目的根目录下,运行`pod spec create PrivateLibrary`命令,然后编辑生成的`PrivateLibrary.podspec`文件。 在`...
3. **编写Podspec文件**:每个Podspec文件都定义了一个库的元数据,包括版本、作者、源代码位置等。确保所有必要的信息都已经正确填写。 4. **验证Podspec文件**:使用`pod spec lint MyPrivateLibrary.podspec`命令...
1. 在GitLab上创建一个新的仓库,用于存放podSpec文件。GitLab是一个基于Git的在线平台,提供源代码管理功能。在GitLab上创建仓库,我们需要通过Web界面或使用Git命令行工具,像这样: ```bash git clone *** **...
在Swift编程环境中,"自制私有库pods"是一个重要的实践环节,它允许开发者创建自己的框架或库,并通过CocoaPods这个流行的依赖管理工具分享和重用代码。CocoaPods简化了iOS和macOS项目中第三方库的集成过程,同时也...
4. 在该目录下创建一个`.podspec`文件,用Ruby编写私有库的规格描述。例如,需要包含`name`(库名)、`version`(版本号)、`source`(源代码URL)、`source_files`(源文件路径)等字段。 5. 将私有库的源代码链接...
这个压缩包文件`podspec-frameworks-master`可能包含了一个关于如何创建和管理自定义Podspec文件以及集成框架的示例或教程。 在iOS和macOS开发中,`Podspec`文件扮演着至关重要的角色。它们定义了第三方库的元数据...
标题“dicoding-ios-expert-module-podspec”和描述中的内容暗示了这是一个关于iOS开发的项目,特别是涉及到使用Ruby的Podspec文件来管理项目模块。Podspec是CocoaPods库的一部分,CocoaPods是iOS和macOS开发中最...
"WunderWeatherService" 是一个使用了CocoaPods的示例项目,它的目的是展示如何在iOS开发中集成和利用私有库。CocoaPods是Apple平台的一个流行的依赖管理工具,它使得开发者能够方便地管理和更新第三方库,避免手动...
5. 可能还有`Podspec`或`Package.swift`文件,用于CocoaPods或Swift Package Manager的依赖管理。 对于想要深入了解SwiftMark的开发者,可以阅读源码来学习其内部实现,比如它如何解析Markdown特殊语法,如何构建和...
当你在项目中引入CocoaPods时,你需要创建一个名为`Podfile`的文件,其中列出了你的项目所依赖的库。CocoaPods使用`pod install`命令从其官方资料库(称为Specs仓库)下载并安装这些库。这个Specs仓库就像一个巨大的...
- **Podspec文件**:了解如何编写自己的Podspec文件,以便将自己的库发布到CocoaPods。 - **Target和Subspecs**:在一个Podfile中可以定义多个target,以支持不同的项目需求,Subspecs则允许你模块化库的代码。 - ...
- `CLPodTest-master`这个压缩包包含的可能是一个完整的源代码仓库,包括`Podspec`文件、源代码文件、资源文件、示例项目等。 - 解压后,开发者可以查看源代码,学习库的实现,也可以在自己的项目中根据需要进行...
在解压后,我们可以期待看到一个结构化的目录,包含`podspec`文件,可能还有ScaleMonk SDK的源代码、示例项目、文档和其他相关资源。 总的来说,这个压缩包提供了ScaleMonk SDK的CocoaPods集成方案,使得iOS开发者...
5. Podspec文件:如果使用CocoaPods进行依赖管理,那么可能会有一个Podspec文件,方便其他开发者通过Podfile引入这个库。 在实际开发中,iOS开发者可以将这些源码整合到自己的项目中,通过调整参数和定制逻辑,使...
在iOS开发中,CocoaPods是一个流行的依赖管理工具,它允许开发者通过Podspec文件定义自己的库或组件,包括版本信息、依赖关系等。将模板与CocoaPods结合,可以方便地分享和复用代码模板,提高开发效率。 四、Swift ...