文章目录
- 这篇文章对哪些人群参考价值? 对未使用过Cocoapods的人群有参考价值 对使用过Cocoapods,但是未深入了解过的用户有参考价值 对有开源精神的,希望将自己的代码贡献到Cocoapods的用户有参考价值 如果您不属于以上人群,您是可以不阅读本篇文章的,当然阅读完也会有很大的帮助。 温馨提示:在篇文章中所使用的Xcode版本为Xcode7.
- 我们也许有过这样的感受: 每添加一个第三方库、Framework或者SDK,我们都需要手动添加相关依赖库,在工程buildsetting中配置路径,在build phases中添加依赖的系统库。如果所导入的第三方库还依赖其他第三方库,我们也需要手动导入且分别添加工程配置。 当我们需要更新某个第三方库的时候,我们又要手动移除该库,导入新的库,然后再配置,这是相当麻烦且没有意义的工作。当使用CocoaPods管理后,我们只需要修改为某个版本,再执行pod update即可。 当我们需要去掉某个第三方库时,我们是怎么做的呢?是不是将该库移除掉,然后还得把相关配置也移除掉,这样工作才干净。是不是很麻烦呢?当我们使用Cocoapods管理后,我们是怎么做的?只需要在Podfile删除该引入该库的语句,然后执行pod update即可。 当我们开始使用CocoaPods管理第三方库后,我们只需要相当少的配置,其它的一切都交由CocoaPods来管理即可,我们使用起来就更省心了。
- CocoaPods is built with Ruby and is installable with the default Ruby available on OS X. We recommend you use the default ruby. 也就是说CocoaPods是通过Ruby来安装的,MAC OSX都有一个默认的Ruby版本,推荐我们通过默认的Ruby来安装CocoaPods。 使用下面的命令安装: sudo gem install cocoapods 事实上,这样安装未必能安装成功,因为默认的cocoapods网址是国外的,需要VPN才能访问,因此我们可以改一种方式: 先输入gem sources –remove https://rubygems.org/ 等待有反映后,再输入gem source -a https://ruby.taobao.org/ 验证是否成功替换:gem source -l 最后就可以通过sudo gem install cocoapods正常安装cocoapods了。 等待安装完成后,就可以开始使用CocoaPods了。 注意:source或者sources都可以.
- 要使用CocoaPods,就需要一个Podfile文件。我们是如何为所有的工程建立Podfile的,下面的方式是基本的方式。 cd Desktop/Demos/KVODEMOtouch Podfilevi Podfile 第一步:进入到我们所建立的工程的目录,这里是KVODEMO 第二步:通过touch命令新建Podfile 第三步:通过vi Podfile进入编辑Podfile 第四步:添加第三方库,如下图,我们添加了AFNetworking和ObjectiveSugar库,其中我们添加的AFNetworking版本是2.0版本,ObjectiveSugar版本是0.5。按下esc键,然后输入:wq,就可以保存了。然后在终端输入pod install,就可以安装第三方库了。 pod 'AFNetworking', '~> 2.0' pod 'ObjectiveSugar', '~> 0.5' 在安装完成后,我们不再是打开后缀为.xcodeproj的工程,而是打开后缀为.xcworkspace的工作空间了。 笔者还针对Podfile写了一篇玩转Podfile文章,对于英文不太好或者不想花太多时间去研究官方文档的,可以直接阅读此篇文章,即可达到您想要的目的了。关于Podfile更高级的使用说明,请参考官方文档或者关注后续文章!
- 在工程中,我们只需要通过引入改文件就可以直接使用了,比如我们引入了第三方库Masonry(纯代码自动布局),我们在Objective-C工程中就可以通过import头文件即可。 #import 注意,如果这么做提示找不到头文件,那么我们可以尝试这么引入:#import "Masonry.h"或者通过#import "Masonry/Masonry.h" 如果仍然没有效果,那么需要在工程配置一下.在工程的Build Settings搜索Search Paths,然后在User header search paths中添加$(SRCROOT)并选择recursive(也就是递归查找)
- 我相信大家在Swift工程中使用CocoaPods也遇到了不少问题,尤其是如何import模块问题。当初我遇到这种问题时,也在网上搜索了很多的资料,但是都不是我希望的方案。在网上有两种方式: 通过Swift工程可以桥接Objectice-C的方式,建立一个Bridge-head.h(名字随便起),然后进入到Build Settings,在搜索框中输入bridg,找到Objective-C Bridging Header,选项,把头文件的路径赋值给该选项。如下所示: 也就是:工程名/桥接文件名.h。在刚才所建立的桥接文件中,通过#import "头文件.h"就可以了。 虽然是Objective-C第三方库,事实上我们也可以使用Swift的方式引入的,也就是通过 import 模块名 的方式来引入。所以对于上面的方式,我是不喜欢的。那么再看看网上的另一种方式:Swift第三方管理 当然,现在swift出了一个Package Manager,专门管理第三方引用的。 这是通过submodule的方式来管理的。 创建submodule,在当前项目的同级目录下执行类似这样的命令,如下: git submodule add https://github.com/Masonry.git 然后将生成的Masonry.xcodeproj拖入到工程中。 在xcode工程的general中,点击embeded libraries中的+号,然后改我们的第三方库framework,类似下图: 最后就可以直接在工程中需要使用的地方,通过import模块名来使用了。 如果是多人团队开发,我们就需要共享了,那么其他成员就需要通过下面的命令来安装: git submodule update --init --recursive 这是通过递归来安装或者更新submodule。这是挺麻烦的一件事。然后根据使用的经验,我们下载别人的工程下来后,执行了上面的命令,安装好相关模块了,运行工程经常出现报错的问题,也就是配置问题。因此,个人很不喜欢这种方式。 事实上,在Xcode7是不再需要这么做了,对于其他Xcode版本是否需要,未验证。 我们通过cocoapods安装的第三方库会自动生成为framework,然后我们只需要在使用的地方直接通过import 模块名使用即可。但是有时候可能会出现某个第三方库直接通过import 模块名时,提示找不到,也就是没有智能提示。这时候我们可以通过在xcode工程的general中的embeded libraries点击+,然后导入该framework,就可以正常import了。另外如果导入的第三方库在运行时,报错了,类似于: dyld: Library not loaded: @rpath/ReactiveCocoa.framework/ReactiveCocoa Referenced from: /private/var/mobile/Containers/Bundle/Application/31ABC86A-C1BD-40DD-A117-D2C8F79A98FE/SwiftGithubClient.app/SwiftGithubClient Reason: image not found
- 升级CocoaPods是非常简单的,只需要一个命令即可。 正常情况下,只需要一个命令就可以升级了: sudo gem install cocoapods 但是有可能需要更新gem才能升级cocoapods,因此我们可能需要这么做: $ sudo gem update --system // 先更新gem,国内需要切换源$ gem sources --remove https://rubygems.org/$ gem sources -a http://ruby.taobao.org/$ gem sources -l CURRENT SOURCES http://ruby.taobao.org/$ sudo gem install cocoapods // 安装cocoapods$ pod setup 然后查看版本号: $ pod --version0.39.0
- 这里就介绍我写的一个三方库HYBMasonryAutoCellHeight让其支持Cocoapods的步骤。
第一步:打开终端并进入到工程的目录。这里是我所开源的一个HYBMasonryAutoCellHeight开源库,用于自动计算cell的高度。
cd HYBMasonryAutoCellHeight
第二步:创建一个Podspec文件。通过命令pod spec create创建,
pod spec create HYBMasonryAutoCellHeight
第三步:编辑该podspec文件:
vi HYBMasonryAutoCellHeight.podspec
大家会看到,这自动生成的已经是一个模板了,我们需要做的就是修改相关内容,补充内容就可以满足我们的需求了。对于更高级的使用,就需要参考官方文档,一步步地学习使用了。 看看我所提供的第三方库的podspec文件的配置,去掉注释后看一看最关键的配置:
Pod::Spec.new do |s|s.name = "HYBMasonryAutoCellHeight"s.version = "0.0.1"s.summary = "基于Masonry的自动计算cell的行高的扩展库"s.homepage = "http://hybios.lianliankeji.com/cocoapods-support/"s.license = "MIT"s.author = { "huangyibiao" => "huangyibiao520@163.com" }s.platform = :ios, "6.0"s.source = { :git => "https://github.com/632840804、HYBMasonryAutoCellHeight.git", :tag => "0.0.1" }s.source_files = "HYBMasonryAutoCellHeight", "*.{h,m}"s.requires_arc = trues.dependency "Masonry", "~> 0.6"
这一步很关键,需要配置的东西比较多。主要是s.source这里必须提供我们的git路径、指定tag号和s.source_files这里必须指定库的源代码文件。通常我们会把我们的库放到与Demo工程的.xcodeproj同级,比较这里的HYBMasonryAutoCellHeight目录是与.xcodeproj是同级的父级目录,然后我们就可以更简单的设置了。如下图:
然后我们在设置s.source_files时,第一个就设置为HYBMansonryAutoCellHeight,第二个就是设置为所有的.{h,m}类型的文件。对于比较复杂的设置,可以参考AFNetworking中的podspec文件。
- # s.framework = 'SomeFramework'// 去掉#,设置依赖的系统库名称# s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称# s.library = 'iconv'// 设置只依赖一个系统的library# s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library# s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了。
- s.dependency 'JSONKit', '~> 1.4'//设置我们的开源库依赖哪些第三方库和依赖的版本号。 第四步:这里呢,我们设置的版本号为0.0.1,那么tag号为0.0.1,因此我们还需要新建一个tag,名为0.0.1,然后推到git: $ git commit -m "如果当前有变化,先提交到git上,再创建tag"$ git tag 0.0.1$ git push --tags$ git push origin master 第四步可以不用。
- 第五步:当然我们还可以直接使用:pod lib lint来验证所有,最后一个是设置允许警告: pod lib lint HYBMasonryAutoCellHeight.podspec --allow-warnings
- -> HYBMasonryAutoCellHeight (0.0.1)HYBMasonryAutoCellHeight passed validation. 如果刚才我们的配置出错,或者需要修改一些内容,重新再推,则可以先删除远程的tag 0.0.1,然后在修改后,重复上面的第四步。下面是删除远程tag命令: git push origin :refs/tags/0.0.1 第六步:在验证通过后,提交到cocoapods。也就是通过命令pod trunk push 库名.podspec来推送到远程的cocoapods: pod trunk push HYBMasonryAutoCellHeight.podspec --allow-warnings 如果出现警告,需要修改相关内容以去掉警告。当操作成功后,我们就可以通过pod search命令来搜索我们的库了。 $ pod search HYBMasonryAutoCellHeight-> HYBMasonryAutoCellHeight (0.0.1) 基于Masonry的自动计算cell的行高的扩展库 pod 'HYBMasonryAutoCellHeight', '~> 0.0.1' - Homepage: http://hybios.lianliankeji.com/cocoapods-support/ - Source: https://github.com/632840804/HYBMasonryAutoCellHeight.git - Versions: 0.0.1 [master repo] 更详细地使用,请参考官方文档 这里有一篇文章,写得相当不错:支持pod
- 现在发布到podspec时,需要注意添加上--use-libraries,并且在验证时也需要添加这个参数,不然会一直报错! 当你遇到下面的错误: include of non-modular header inside framework module 时,一定要注意了,这样发布: pod trunk push HYBHelperKit.podspec --use-libraries OK,成功发布了!
- 要让自己的库变成私有库,那么我们的代码也是需要通过git来管理的。 这里假设我们新建了一个工程,名叫BookEffect,然后已经push到git远程服务器。 第一步:按照第六节一样,创建好podspec文件,并将整个工程推送到git服务器这边。 第二步:这才是引入私有库的方式。pod 'DemoLib',:git=>"http://xxxxx.git"(替换为真实的git地址) 具体不细说,请参考:生成私有pod
- 这里就不细说,不过推荐一篇文章:打包表态库,写得很不错,如果需要,可以参考。 最后,感谢各位认真阅读本篇文章,感谢您的支持。
- 参考官方文档而写下本篇文章,若有雷同,纯属意外!文章中所提供了站外链接,是一些笔者推荐的觉得不错的文章。 转载自标哥的笔记
什么是CocoaPods?简单来说,就是专门为iOS工程提供对第三方库的依赖的管理工具,通过CocoaPods,我们可以单独管理每个第三方库,可以更方便地管理每个第三方库的版本,而且不需要我们做太多的配置,直接交由提供支持CocoaPods项目的作者来配置了,如此便可直观、集中和自动化地管理我们项目的第三方库。
对于iOS App的开发,几乎都采用了Cocoapods来管理第三方库,那么对于我们开发人员来说,这是必备技能,必须要掌握如何使用。这篇文章就是介绍如何安装和使用CocoaPods的。
相信大家都使用过Cocoapods了吧?想起未使用pod的时代,每次想更新库的版本的时候,都不知道当前是哪个版本,而且库的代码还被修改过,这该如何替换、升级版本呢?有了pod之后,大家都可以控制版本,也很容易去升级版本,大家都不能修改第三方库!
这篇文章对哪些人群参考价值?
- 对未使用过Cocoapods的人群有参考价值
- 对使用过Cocoapods,但是未深入了解过的用户有参考价值
- 对有开源精神的,希望将自己的代码贡献到Cocoapods的用户有参考价值
如果您不属于以上人群,您是可以不阅读本篇文章的,当然阅读完也会有很大的帮助。
温馨提示:在篇文章中所使用的Xcode版本为Xcode7.
我们也许有过这样的感受:
每添加一个第三方库、Framework或者SDK,我们都需要手动添加相关依赖库,在工程buildsetting中配置路径,在build phases中添加依赖的系统库。如果所导入的第三方库还依赖其他第三方库,我们也需要手动导入且分别添加工程配置。
当我们需要更新某个第三方库的时候,我们又要手动移除该库,导入新的库,然后再配置,这是相当麻烦且没有意义的工作。当使用CocoaPods管理后,我们只需要修改为某个版本,再执行pod update即可。
当我们需要去掉某个第三方库时,我们是怎么做的呢?是不是将该库移除掉,然后还得把相关配置也移除掉,这样工作才干净。是不是很麻烦呢?当我们使用Cocoapods管理后,我们是怎么做的?只需要在Podfile删除该引入该库的语句,然后执行pod update即可。
当我们开始使用CocoaPods管理第三方库后,我们只需要相当少的配置,其它的一切都交由CocoaPods来管理即可,我们使用起来就更省心了。
CocoaPods is built with Ruby and is installable with the default Ruby available on OS X. We recommend you use the default ruby.
CocoaPods is built with Ruby and is installable with the default Ruby available on OS X. We recommend you use the default ruby.
也就是说CocoaPods是通过Ruby来安装的,MAC OSX都有一个默认的Ruby版本,推荐我们通过默认的Ruby来安装CocoaPods。
使用下面的命令安装:
sudo gem install cocoapods
事实上,这样安装未必能安装成功,因为默认的cocoapods网址是国外的,需要VPN才能访问,因此我们可以改一种方式:
- 先输入gem sources –remove https://rubygems.org/
- 等待有反映后,再输入gem source -a https://ruby.taobao.org/
- 验证是否成功替换:gem source -l
- 最后就可以通过sudo gem install cocoapods正常安装cocoapods了。
等待安装完成后,就可以开始使用CocoaPods了。
注意:source或者sources都可以.
要使用CocoaPods,就需要一个Podfile文件。我们是如何为所有的工程建立Podfile的,下面的方式是基本的方式。
cd Desktop/Demos/KVODEMO
touch Podfile
vi Podfile
- 第一步:进入到我们所建立的工程的目录,这里是KVODEMO
- 第二步:通过touch命令新建Podfile
- 第三步:通过vi Podfile进入编辑Podfile
- 第四步:添加第三方库,如下图,我们添加了AFNetworking和ObjectiveSugar库,其中我们添加的AFNetworking版本是2.0版本,ObjectiveSugar版本是0.5。按下
esc键,然后输入:wq,就可以保存了。然后在终端输入pod install,就可以安装第三方库了。
pod 'AFNetworking', '~> 2.0'
pod 'ObjectiveSugar', '~> 0.5'
在安装完成后,我们不再是打开后缀为.xcodeproj的工程,而是打开后缀为.xcworkspace的工作空间了。
笔者还针对Podfile写了一篇玩转Podfile文章,对于英文不太好或者不想花太多时间去研究官方文档的,可以直接阅读此篇文章,即可达到您想要的目的了。关于Podfile更高级的使用说明,请参考官方文档或者关注后续文章!
在工程中,我们只需要通过引入改文件就可以直接使用了,比如我们引入了第三方库Masonry(纯代码自动布局),我们在Objective-C工程中就可以通过import头文件即可。
#import
注意,如果这么做提示找不到头文件,那么我们可以尝试这么引入:#import "Masonry.h"或者通过#import "Masonry/Masonry.h"
如果仍然没有效果,那么需要在工程配置一下.在工程的Build Settings搜索Search Paths,然后在User header search paths中添加$(SRCROOT)并选择recursive(也就是递归查找)
我相信大家在Swift工程中使用CocoaPods也遇到了不少问题,尤其是如何import模块问题。当初我遇到这种问题时,也在网上搜索了很多的资料,但是都不是我希望的方案。在网上有两种方式:
通过Swift工程可以桥接Objectice-C的方式,建立一个Bridge-head.h(名字随便起),然后进入到Build Settings,在搜索框中输入bridg,找到Objective-C Bridging Header,选项,把头文件的路径赋值给该选项。如下所示:
也就是:工程名/桥接文件名.h。在刚才所建立的桥接文件中,通过#import "头文件.h"就可以了。
虽然是Objective-C第三方库,事实上我们也可以使用Swift的方式引入的,也就是通过 import 模块名 的方式来引入。所以对于上面的方式,我是不喜欢的。那么再看看网上的另一种方式:Swift第三方管理
当然,现在swift出了一个Package Manager,专门管理第三方引用的。
这是通过submodule的方式来管理的。 创建submodule,在当前项目的同级目录下执行类似这样的命令,如下:
git submodule add https://github.com/Masonry.git
然后将生成的Masonry.xcodeproj拖入到工程中。 在xcode工程的general中,点击embeded libraries中的+号,然后改我们的第三方库framework,类似下图:
最后就可以直接在工程中需要使用的地方,通过import模块名来使用了。 如果是多人团队开发,我们就需要共享了,那么其他成员就需要通过下面的命令来安装:
git submodule update --init --recursive
这是通过递归来安装或者更新submodule。这是挺麻烦的一件事。然后根据使用的经验,我们下载别人的工程下来后,执行了上面的命令,安装好相关模块了,运行工程经常出现报错的问题,也就是配置问题。因此,个人很不喜欢这种方式。
事实上,在Xcode7是不再需要这么做了,对于其他Xcode版本是否需要,未验证。 我们通过cocoapods安装的第三方库会自动生成为framework,然后我们只需要在使用的地方直接通过import 模块名使用即可。但是有时候可能会出现某个第三方库直接通过import 模块名时,提示找不到,也就是没有智能提示。这时候我们可以通过在xcode工程的general中的embeded libraries点击+,然后导入该framework,就可以正常import了。另外如果导入的第三方库在运行时,报错了,类似于:
dyld: Library not loaded: @rpath/ReactiveCocoa.framework/ReactiveCocoa Referenced from: /private/var/mobile/Containers/Bundle/Application/31ABC86A-C1BD-40DD-A117-D2C8F79A98FE/SwiftGithubClient.app/SwiftGithubClient Reason: image not found
在Build Phases->Link Binary With Libraries->找到出错的库的名称->修改required为optional即可。
升级CocoaPods是非常简单的,只需要一个命令即可。 正常情况下,只需要一个命令就可以升级了:
sudo gem install cocoapods
但是有可能需要更新gem才能升级cocoapods,因此我们可能需要这么做:
$ sudo gem update --system // 先更新gem,国内需要切换源
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
CURRENT SOURCES
http://ruby.taobao.org/
$ sudo gem install cocoapods // 安装cocoapods
$ pod setup
然后查看版本号:
$ pod --version
0.39.0
这里就介绍我写的一个三方库HYBMasonryAutoCellHeight让其支持Cocoapods的步骤。
- 第一步:打开终端并进入到工程的目录。这里是我所开源的一个
HYBMasonryAutoCellHeight开源库,用于自动计算cell的高度。
cd HYBMasonryAutoCellHeight
- 第二步:创建一个
Podspec文件。通过命令pod spec create创建,
pod spec create HYBMasonryAutoCellHeight
- 第三步:编辑该
podspec文件:
vi HYBMasonryAutoCellHeight.podspec
大家会看到,这自动生成的已经是一个模板了,我们需要做的就是修改相关内容,补充内容就可以满足我们的需求了。对于更高级的使用,就需要参考官方文档,一步步地学习使用了。 看看我所提供的第三方库的podspec文件的配置,去掉注释后看一看最关键的配置:
Pod::Spec.new do |s|
s.name = "HYBMasonryAutoCellHeight"
s.version = "0.0.1"
s.summary = "基于Masonry的自动计算cell的行高的扩展库"
s.homepage = "http://hybios.lianliankeji.com/cocoapods-support/"
s.license = "MIT"
s.author = { "huangyibiao" => "huangyibiao520@163.com" }
s.platform = :ios, "6.0"
s.source = { :git => "https://github.com/632840804、HYBMasonryAutoCellHeight.git", :tag => "0.0.1" }
s.source_files = "HYBMasonryAutoCellHeight", "*.{h,m}"
s.requires_arc = true
s.dependency "Masonry", "~> 0.6"
这一步很关键,需要配置的东西比较多。主要是s.source这里必须提供我们的git路径、指定tag号和s.source_files这里必须指定库的源代码文件。通常我们会把我们的库放到与Demo工程的.xcodeproj同级,比较这里的HYBMasonryAutoCellHeight目录是与.xcodeproj是同级的父级目录,然后我们就可以更简单的设置了。如下图:
然后我们在设置s.source_files时,第一个就设置为HYBMansonryAutoCellHeight,第二个就是设置为所有的.{h,m}类型的文件。对于比较复杂的设置,可以参考AFNetworking中的podspec文件。
# s.framework = 'SomeFramework'// 去掉#,设置依赖的系统库名称
# s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
# s.library = 'iconv'// 设置只依赖一个系统的library
# s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
# s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了。
# s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
# s.library = 'iconv'// 设置只依赖一个系统的library
# s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
# s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了。
s.dependency 'JSONKit', '~> 1.4'//设置我们的开源库依赖哪些第三方库和依赖的版本号。
- 第四步:这里呢,我们设置的版本号为
0.0.1,那么tag号为0.0.1,因此我们还需要新建一个tag,名为0.0.1,然后推到git:
$ git commit -m "如果当前有变化,先提交到git上,再创建tag"
$ git tag 0.0.1
$ git push --tags
$ git push origin master
0.0.1,那么tag号为0.0.1,因此我们还需要新建一个tag,名为0.0.1,然后推到git:$ git tag 0.0.1
$ git push --tags
$ git push origin master
第四步可以不用。
- 第五步:当然我们还可以直接使用:
pod lib lint来验证所有,最后一个是设置允许警告:
pod lib lint HYBMasonryAutoCellHeight.podspec --allow-warnings
pod lib lint来验证所有,最后一个是设置允许警告:
-> HYBMasonryAutoCellHeight (0.0.1)
HYBMasonryAutoCellHeight passed validation.
HYBMasonryAutoCellHeight passed validation.
如果刚才我们的配置出错,或者需要修改一些内容,重新再推,则可以先删除远程的tag 0.0.1,然后在修改后,重复上面的第四步。下面是删除远程tag命令:
git push origin :refs/tags/0.0.1
- 第六步:在验证通过后,提交到
cocoapods。也就是通过命令pod trunk push库名.podspec来推送到远程的cocoapods:
pod trunk push HYBMasonryAutoCellHeight.podspec --allow-warnings
如果出现警告,需要修改相关内容以去掉警告。当操作成功后,我们就可以通过pod search命令来搜索我们的库了。
$ pod search HYBMasonryAutoCellHeight
-> HYBMasonryAutoCellHeight (0.0.1)
基于Masonry的自动计算cell的行高的扩展库
pod 'HYBMasonryAutoCellHeight', '~> 0.0.1'
- Homepage: http://hybios.lianliankeji.com/cocoapods-support/
- Source: https://github.com/632840804/HYBMasonryAutoCellHeight.git
- Versions: 0.0.1 [master repo]
更详细地使用,请参考官方文档
这里有一篇文章,写得相当不错:支持pod
现在发布到podspec时,需要注意添加上--use-libraries,并且在验证时也需要添加这个参数,不然会一直报错!
当你遇到下面的错误:
include of non-modular header inside framework module
时,一定要注意了,这样发布:
pod trunk push HYBHelperKit.podspec --use-libraries
OK,成功发布了!
要让自己的库变成私有库,那么我们的代码也是需要通过git来管理的。 这里假设我们新建了一个工程,名叫BookEffect,然后已经push到git远程服务器。
- 第一步:按照第六节一样,创建好
podspec文件,并将整个工程推送到git服务器这边。 - 第二步:这才是引入私有库的方式。
pod 'DemoLib',:git=>"http://xxxxx.git"(替换为真实的git地址)
具体不细说,请参考:生成私有pod
这里就不细说,不过推荐一篇文章:打包表态库,写得很不错,如果需要,可以参考。
最后,感谢各位认真阅读本篇文章,感谢您的支持。
参考官方文档而写下本篇文章,若有雷同,纯属意外!文章中所提供了站外链接,是一些笔者推荐的觉得不错的文章。
转载自标哥的笔记