如何配置自己的开源项目,支持使用CocoaPods
2016-06-02 15:38
465 查看
目前我们越来越多的使用CocoaPods管理项目中使用到的第三方库,通过CocoaPods,我们可以单独的管理每一个第三方库,而不需要做太多配置,这种方便、高效的方式,已经成为“热门的开源项目”的必备配置,大家能想到的第三方,基本上是都支持CocoaPods安装—pod ‘AFNetWorking’ ~> x.x.x,想必都熟悉这种安装方式了,那么问题是:
自己也写了一些开源项目,怎么支持CocoaPods,让其他人pod search,然后pod install呢?
效果图:
.podspec文件已经是一个模板,根据自己的项目进行相应的修改即可,可以参考下面我写的,改项目name、summary、source、source_file、resources_bundle等一些属性成自己的即可:
这里要说明,我的开源项目没有依赖其他第三方库和系统库,如果大家的用到了,除了上面的一些主要的,还需要配置如下:
如果开源项目依赖系统库
如果开源项目依赖其他第三方库
写完上面的podspec文件,需要验证一下我们写的这个podspec文件配置是否正确:
如果验证通过,会出现类似下面提示:
如果配置有错,重新修改podspec文件,继续验证!!!验证通过后,就先将本地podspec文件push到github等:
如果出现警告,根据警告修改相关内容,有可能是podspec文件内容有问题,即使我们pod lib lint验证过了。还有一种普遍的情况是:提示类似“register session”之类的话,这是需要我们注册trunk:
继续pod trunk push DRSAlertDialog.podspec,成功之后,如下图:
接下来,我们就可以很装逼的让别人 pod search DRSAlertDialog、pod ‘DRSAlertDialog’, ‘~> 0.0.1’。
附上开源项目地址,可以看具体的配置 https://github.com/jakajacky/DRSAlertDialog,不拒绝start、fork!(^o^)/~
自己也写了一些开源项目,怎么支持CocoaPods,让其他人pod search,然后pod install呢?
Start:这里拿自己写的开源项目swift版DRSAlertDialog举例,让其支持CocoaPods
step0:确保自己的开源项目在已经托管到github之类。。。我的项目已经在https://github.com/jakajacky/DRSAlertDialog
step1:进入工程一级目录下,打开go2shell,开始使用终端&没有go2shell,则打开终端并cd到工程的一级目录,我的工程来说就是进入DSRAlertDialog
step2:创建.podspec文件
pod spec create DRSAlertDialog
效果图:
step3:编辑.podspec文件
vi DRSAlertDialog.podspec
.podspec文件已经是一个模板,根据自己的项目进行相应的修改即可,可以参考下面我写的,改项目name、summary、source、source_file、resources_bundle等一些属性成自己的即可:
Pod::Spec.new do |s| s.name = "DRSAlertDialog" // 第三方名字 s.version = "0.0.1" // 版本号 s.summary = "A short description of DRSAlertDialog." // 描述 s.homepage = "https://github.com/jakajacky/DRSAlertDialog" // 主页,写其他地址也可 s.license = "MIT" // 证书,一般都是在github创建项目时选择的MIT类型证书自动生成;也可以手动创建,MIT License模板:http://choosealicense.com/licenses/mit/ s.author = { "xqzh" => "xqzh@ideabinder.com" } // 作者 s.platform = :ios, "9.0" // 平台 s.source = { :git => "https://github.com/jakajacky/DRSAlertDialog.git", :tag => "0.0.1" } // 你的第三方的地址,决定别人能不能安装,我的是在github上 s.source_files = "DRSAlertDialog/Pod", "DRSAlertDialog/Pod/*.{swift}" // 第三方的核心文件,别人需要用到的文件。建议当地工程的指定文件夹中,便于管理,EX:我的是在DRSAlertDialog/Pod文件夹下。\ *号是通配符,表示Pod文件夹下所有的.swift文件 s.resource_bundles = {'DRSAlertDialog' => ['DRSAlertDialog/Resources/*.png']} // 如果你的第三方有一些图片等资源,需要这样配置,这样别人使用cocoapods安装你的第三方,照片也会跟随。 s.requires_arc = true end
这里要说明,我的开源项目没有依赖其他第三方库和系统库,如果大家的用到了,除了上面的一些主要的,还需要配置如下:
如果开源项目依赖系统库
# 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'//设置我们的开源库依赖哪些第三方库和依赖的版本号。
写完上面的podspec文件,需要验证一下我们写的这个podspec文件配置是否正确:
step5:验证podspec文件
pod lib lint DRSAlertDialog.podspec --allow-warnings // 也可以使用 --verbose 查看更多反馈信息
如果验证通过,会出现类似下面提示:
如果配置有错,重新修改podspec文件,继续验证!!!验证通过后,就先将本地podspec文件push到github等:
git push origin .... // 别忘了打个tag,用于第三方版本号,这里我用了0.0.1, git tag 0.0.1 git push --tags
step6:提交podspec文件到CocoaPods
pod trunk push DRSAlertDialog.podspec --allow-warnings
如果出现警告,根据警告修改相关内容,有可能是podspec文件内容有问题,即使我们pod lib lint验证过了。还有一种普遍的情况是:提示类似“register session”之类的话,这是需要我们注册trunk:
pod trunk register jack_zhangx@cocoapods.org 'jack_zhangx' --description='macbook air'
继续pod trunk push DRSAlertDialog.podspec,成功之后,如下图:
接下来,我们就可以很装逼的让别人 pod search DRSAlertDialog、pod ‘DRSAlertDialog’, ‘~> 0.0.1’。
附上开源项目地址,可以看具体的配置 https://github.com/jakajacky/DRSAlertDialog,不拒绝start、fork!(^o^)/~
相关文章推荐
- Ruby微信开发的几个开源项目介绍
- 利用AJAX开源项目 在网页里播放视频实现方法
- 使用PHP把HTML生成PDF文件的几个开源项目介绍
- 机器学习---学习首页 3ff0
- nice-repo 搜集优秀的开源项目
- 论开源<4>---开源的商业模式
- 关于开源项目《Scavenger》
- 如何做一个真正牛X 的开源项目
- 我用过的几个开源GIS软件
- 10款GitHub上最火爆的国产开源项目
- 参与到开原项目中去
- 10个关于人工智能和机器学习的有趣开源项目
- 在Ubuntu上部署开源博客系统Blog_mini
- Firefly-RK3288系统界面预览
- Android非常有用的开源库介绍整理
- 需求加入开源项目,为社区做贡献
- GitHub 优秀的 Android 开源项目
- gnome-logs开发记录1--起源--Gnome开发记录
- gnome-logs开发记录4--noob重构代码就是这个feel
- gnome-logs开发记录3--修复bug726228+杂记