CocoaPods上传公用项目
来源:互联网 发布:javascript是什么知乎 编辑:程序博客网 时间:2024/05/21 07:04
CocoaPods上传公用项目
存在的问题
项目写到一定阶段时,在新建项目另起炉灶的时候,大量的使用了老项目的公用部分,暂且不论copy/paste
对我们自身成长的局限吧,单单从下面的场景可以看到单纯的copy/paste
是多么的致命:
场景:新的项目使用到老项目的公用代码,但是在开发过程中,这部分的公用代码可能并不完善或者性能并不高效的代码,虽然你会很积极用心的改好了新项目中的这部分代码,往往回去再改老项目的时候会非常非常的痛苦,哪怕这块公用代码只有新老两个项目使用。
CocoaPods介绍
CocoaPods
可以说是解决这个问题比较好的方式了,作为iOS
非常好用的项目依赖管理工具,它能方便的管理和更新项目中使用的第三方库。关于它的一些介绍,iOS
的大大们都已经开好了大道,推荐看看唐巧大大的CocoaPods做iOS程序的依赖管理
CocoaPods上传项目步骤
接下来简单高效的说明CocoaPods
上传公用项目的步骤:
1、创建Pod项目
工程文件;
2、在github
或者其他git
服务网站对该项目建立git仓库
;
3、配置HDBaseProject.podspec
文件;
4、将代码放在Pods-Development Pods/HDBaseProject/Pod/Classes/
目录下;
5、在项目的master分支
加上版本号;
6、在CocoaPods
上注册刚刚的Pod项目
;
7、验证Pod项目
是否符合CocoaPods
的规范;
8、将HDBaseProject.podspec
到cocoaPods
中;
9、新项目使用;
10、一些问题;
接下来详细的说明CocoaPods
上传公用项目的步骤:
1、创建Pod项目
工程文件:
$ pod lib create HDBaseProject
2、在github对该项目建立git仓库:
开源代码上传GitHub
$ cd projectPath$ git add .$ git commit -s -m "Initial Commit of Library"$ git remote add origin https://github.com/erduoniba/ HDBaseProject.git $ git push origin master
3、配置HDBaseProject.podspec
文件:
Pod::Spec.new do |s| s.name = "HDBaseProject" s.version = "1.0.0" s.summary = "快速搭建项目" s.description = "新建项目中常用的基础类,项目有一定量的时候,都是代码的复制和粘贴,但是在后台的粘贴中或许有好的代码更正,这个时候我们往往没有时间去维护以前的老代码,不经意间会出现代码不同步的问题" s.homepage = "https://github.com/erduoniba/HDBaseProject" s.license = 'MIT' s.author = { "Harry" => "328418417@qq.com" } s.source = { :git => "https://github.com/erduoniba/HDBaseProject.git", :tag => "1.0.0" } s.platform = :ios, '7.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' s.resource_bundles = { 'HDBaseProject' => ['Pod/Assets/*.png'] } s.dependency 'AFNetworking' #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependencyend
4、将代码放在Pods-Development Pods/HDBaseProject/Pod/Classes/
目录下:
5、在项目的master分支
加上版本号:
这个地方的tag值需要和HDBaseProject.podspec
中的v.version
保存一致
$ cd projectPath$ git tag -m "first release" 1.0.0$ git push --tags #推送tag到远端仓库
6、在CocoaPods
上注册刚刚的Pod项目
:
$ cd HDBaseProject.podspec文件所在的路径$ pod trunk register 13049862397@163.com 'HDBaseProject' --description='新建项目中常用的基础类,项目有一定量的时候,都是代码的复制和粘贴,但是在后台的粘贴中或许有好的代码更正,这个时候我们往往没有时间去维护以前的老代码,不经意间会出现代码不同步的问题'
注册之后收到来自info@cocoapods.org的一封验证邮箱,点击链接确认即可
7、验证Pod项目
是否符合CocoaPods
的规范:
$ cd HDBaseProject.podspec文件所在的路径$ pod lib lint
当显示HDBaseProject passed validation
表示验证通过
8、将HDBaseProject.podspec
到Spec Repo
中:
$ cd HDBaseProject.podspec文件所在的路径$ pod trunk push HDBaseProject.podspec
成功之后使用
$ pod search HDBaseProject
可以搜索到该项目,这表明在Cocoapods
上传项目已经成功
9、新项目使用:
会使用CocoaPods
的同学都懂,在项目的Podfile
中添加
pod 'HDBaseProject'
执行:
$ cd newProjectPath$ pod update
10、一些问题:
10.1
HDBaseProject
本身依赖其他pod工程
,比如依赖AFNetworking
,需要对Pods/Podfile
进行修改:source 'https://github.com/CocoaPods/Specs.git'use_frameworks!target 'HDBaseProject_Example', :exclusive => true do pod 'HDBaseProject', :path => "../" pod 'AFNetworking' endtarget 'HDBaseProject_Tests', :exclusive => true do pod 'HDBaseProject', :path => "../" pod 'AFNetworking'end
然后终端执行:
$ cd Pods/Podfile所在的路径$ pod update
10.2 对
.spec
文件的理解:
在Specs仓库中包含了所有Pod项目
,随便点击一个Pod项目
进去可以发现里面只有一个json
文件:(里面内容其实就是开发者上传的.spec
文件转json
后的文件)
同样的,我们在安装或者更新CocoaPods
的时候,实际上就是在更新Specs仓库
,本地存放地址是:.cocoapods/repos/master/Specs
10.3 项目更新:
项目编辑完成之后,将这个工程push到远端仓库,并打上新的tag->1.0.1
和HDBaseProject.spec
中的v.version
保存一致$ cd HDBaseProject.podspec文件所在的路径$ pod lib lint
验证通过,再次提交到
Spec Repo
中
最后再次使用pod lib lint验证编辑好的podsepc文件,没有自身的WARNING或者ERROR之后,就可以再次提交到Spec Repo中了,命令跟之前是一样的
$ cd HDBaseProject.podspec文件所在的路径$ pod trunk push HDBaseProject.podspec
10.4 项目删除:(未试验��)
$ cd .cocoapods/repos/master/Specs$ rm -Rf HDBaseProject$ git add --all .$ git ci -m "remove HDBaseProject"$ git push origin master
10.4 项目邀请他人共同维护:(未试验��)
$ pod repo add HDBaseProject https://github.com/erduoniba/HDBaseProject.git
CocoaPods相关资料
CocoaPods官网
wtlucky’s Blog 使用Cocoapods创建私有podspec
yohunl cocoapods应用第二部分-私有库相关
项目下载
- CocoaPods上传公用项目
- 上传iOS项目到CocoaPods
- 项目上传到cocoapods 打包framework上传到cocoapods
- github 上传项目 过滤到cocoapods无用文件
- github 上传项目 过滤到cocoapods无用文件
- 上传Podspec到Cocoapods
- 项目开发->cocoapods使用
- iOS项目添加CocoaPods
- 项目安装CocoaPods
- 项目中使用cocoaPods
- 删除项目中的CocoaPods
- iOS项目集成cocoaPods
- ios项目导入cocoapods
- 上传自己代码到Cocoapods
- idea怎么安装公用的项目模块
- Idea安装公用的项目模块
- kotlin自定义项目中公用View
- AWS S3上传文件,并获取公用的下载链接
- IOS学的容易----单例类对数据库的具体的操作的⽅法进⾏封装(二)
- Ubuntu14.02下ssh安装与配置
- Java对象序列化
- 发邮件MailMessage、SmtpClient
- 关于java获取本地ip的几种方法
- CocoaPods上传公用项目
- 一个非常标准的Java连接Oracle数据库的示例代码
- 聚类分析中距离度量方法比较
- springMVC教程初级(一)初始springmvc(重点 )
- SQL查询
- 数组访问方式
- Android中Display及DisplayMetrics理解
- glog安装和使用方法
- java定时执行任务举例