iOS组件化开发1 · 什么是组件化
组件化开发2 · 组件开发必备技能
这篇文章的主要内容list
1、学会使用git
2、作为使用者、开发者怎样使用 CocoaPods
3、学会创建远程私有的CocoaPods库
一、git的使用
git最基本要理解并会使用下面的命令
基本操作
git init # 创建git
git status #查看状态
git add . # 放到暂存区
git commit -m '提交信息' # 提交
----
标签
git tag -a '1.1.1' -m '标签描述' # 创建标签
git push --tags # 推送全部标签
git tag -d 1.0.0 (删除本地标签)
---
远程操作
git clone gitURL
git remote add origin gitURL
git push origin master
git push origin :1.0.0 (有冒号就表示删除远程1.0.0标签)
如果你不明白或者是没有用过上面的命令,请移步到这里看更详细的git教程
git详细教程
二、CocoaPods的使用
如果不了解CocoaPods的安装和简单使用,教程请移步这里 ---> CocoaPods安装教程
CocoaPods是什么
CocoaPods 是用来管理xcode项目的第三方框架的工具CocoaPods的机制(很有必要了解)
它的工作机制是通过pod search 框架名称
在索引库里进行检索,并得到要搜索框架的一个描述文件(.podspec文件)。利用该描述信息中包含的关于框架的版本信息,下载地址,依赖库等信息来下载和管理三方库**让自己的开源程序支持 CocoaPods **
通过对CocoaPods的工作机制的了解,如果想让自己框架支持 CocoaPods 的集成方法,就要为自己的框架创建描述文件,并把描述文件提交到索引库,这样别人就可以通过CocoaPods 使用自己开发的框架了。
所以说白了,让自己的的框架支持 pod ,就是为自己的框架创建一个描述文件,并同步到索引库
那···
如果不想让别人用,只想在公司内部使用呢??
别着急,慢慢往下看
···
pod--使用者
首先我们大致了解一些pod的简单使用
1、打开终端,进入项目目录
2、在终端pod init
方法创建 podfile 文件( 建议不要在终端用touch podfile 方式创建 )
3、用xcode修改podfile文件
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0' # 最低支持的版本
target 'test-1-2' do # 选择制定的target
use_frameworks! # 使用framework形式导入,swift要使用这个
pod 'SDWebImage'
end
4、pod install
安装 pod 所要导入的文件
需要注意的是:
在比较低版本的 pod ,当进行 pod install 的时候。会默认先收就行Updating local specs repositories(更新本地pod检索库)
这里稍微细化一下pod的搜索机制
1、当使用pod search
命令的时候,pod会在pod本地索引库中检索你要寻找的框架。
2、而本地的索引库是从github的pod索引库down来的。所以每次在使用pod install的时候,会从远程更新本地的索引库,这样才能保证本地索引库是最新的,检索到需要的框架
3、在pod install
可以通过后面这个命令代替,来禁止更新本地索引库pod install --verbose --no-repo-update
5、到此,就可以在项目中欢乐的使用添加的框架了
作为使用者,pod为我们管理框架提供了很大的便利,很轻松的管理框架的更新和集成。作为开发者,让我们开发的框架支持pod,是不是也是很利国利民的一件大事呢?
pod--开发者
Hi,The Coder,让自己的库支持CocoaPods,OK?
远程共有/开源
自己的框架如果计划开源。默认的情况下,是把描述文件提交到git的cocoapods的索引库。这样其他人就可以通过pod集成你的开源框架了
步骤
1、本地编码,写好你的开源框架
2、代码上传到github的公开仓库里
3、git打标签,并将标签push到远程
git tag -a '0.1.0' -m '0.0.1' # 添加一个标签
git push --tags # 推送所有标签到远程
本地的编码完成。就需要创建 pod 必须的描述文件
4、在框架所在文件夹中,生成 podspec 描述文件
pod spec create 描述文件名字,建议和项目名字一样
5、简单
修改描述文件参数(复杂的后面结合案例讲解)
用xcode打开上面创建的文件
s.name = "框架名字"
s.version = "版本号"
s.summary = "简单描述" #要比详细描述长度小
s.description "详细猫叔" #要比简单描述长度大
s.homepage = "主页"
s.license = "MIT" # 开放协议根据自己的需要填写
s.autor = "作者"
s.platform = "支持平台和版本"
s.soure = "git代码仓库地址就可以"
s.souce_files = "soure中关键代码的路径"
s.requires_are = true # 支持ARC
具体的修改例子,可以参考AFN的podspec文件
6、修改好以后,验证spec文件是否修改正确
$ pod lib lint
这里一定要验证通过,验证过程中如果有报错或者警告,应该按照提示的信息进行修正
7、注册trunk,并通过trunk提交spec到git的cocapod索引库
# 注册trunk账号
pod trunk register Email UserName
# 注册后,去填写的Email中验证一下,就完成了注册
# 提交到git的CocoaPods仓库
pod trunk push
# 这个操作会把本地的spec田提交到git仓库
到此,自己的开源框架就提交到pod远程的索引库了。尝试一下利用pod添加自己的框架
私有框架
组件化开发的要求我们,自己的功能组件只能本公司使用,所以不能都进行开源的设置。既然这样,就要求我们对自己的框架进行私有化处理
进行私有处理,就不能再把自己的框架提交到git的CocoaPods索引库了。所以我们就要建立属于我们自己的私有库,包括私有本地库 和 私有远程库
私有本地库索引库
上面说道,pod的工作机制是把git的cocoapods索引库拷贝到本地,进行检索的。
git的CocoaPods的索引库克隆到本地,默认的名字为master
为了完成框架私有化,我们需要创建另外一个本地的索引库,用来当做自己的私有本地库
私有远程库索引库
需要在远程建立自己私有CocoaPods索引库,创建方式和git代码库一样。
创建好远程私有库,就要和本地的私有库进行关联。关联以后本地的私有索引库有更新,远程的就会自动更新
操练1 、 指定路径使用pod,不需要索引库
1、编写框架
2、在框架目录 生成并修改 podspec 描述文件
pod spec create 描述文件名字,建议和项目名字一样
本地框架修改描述文件,只要对主要参数修改一下就可以,
s.soure = "" // 因为是本地使用,置空就可以
s.souce_files = "" // 关键代码的相对路径
因为验证文件是根据远程使用的标准进行验证的。所以本地的可以不验证
3、在需要使用框架的目录,创建pod文件,并且修改pod文件
podfile的内容添加框架的时候,要指明spec描述文件所在的路径
platform :ios, '8.0'
target 'TargetName' do
use_frameworks!
pod 'MyLibName', :path => '../MyLibName
'
end
4、 pod install 正常使用
本地路径方法的缺点
1、不能团队共享
2、存放代码的路径不能修改,修改就不能使用
操练2 、远程“私有”库使用CocoaPods
远程私有库,支持多个CocoaPods库的检索和使用。为了能够使CocoaPods能够检索,就需要本地的索引库进行支持。
我们创建本地索引库的方式,是首先创建远程私有的索引库,然后克隆到本地,生成本地的索引库
1、在远程github创建私有库(收费的) 或者 在git.coding 创建私有库(免费的)
远程私有索引库,其实和git的代码库是一样的,只不过这个仓库单独用来CocoaPods索引使用
2、通过URL,把远程的私有索引库克隆到本地。这样本地就有了CocoaPods的索引库
# 通过连接创建本地索引库
pod repo add 本地索引库名字 git地址
# 查询本地所有索引库,就会看到上面命名的索引库
pod repo
这样一来,就创建了远程私有索引库 和 本地索引库,并且存在关联
3、在git.coding 再创建一个代码仓库,进行框架代码的管理(是代码文件的管理,不是索引的管理
)。在本地写框架代码,并上传到远程私有代码仓库(不能使用上面的索引库
),添加标签,并推送到远程代码库;
4、创建spec,修改,并验证
5、把spce先push到本地的索引库,
pod repo push 本地私有库名字 spec文件
6、本地私有索引库在push到远程的索引库,这一步是索引库自动完成
7、接下来我们测试一下 pod install。会发现,并不能找到我们的框架。
这是因为。如果在podfile文件里面,不写任何索引库的路径,默认的只是在git的 pod 索引库进行检索。自然是找不到我们的私有库了
所以我们要在pod文件中提供索引库路径。这样就可以检索到我们的私有框架了
source '[email protected]:xxx/xxx.git'
source 'https://github.com/CocoaPods/Specs.git' #官方仓库的地址
添加在 Podfile的最上面就可以了
三、总结
这篇文章中,主要讲解了CocoaPods的深入使用
0、让自己的框架支持pod导入,创建描述文件,利用trunk提交到git索引库
1、本地路径使用pod导入框架,通过spec描述文件所在路径进行pod导入
2、远程私有的pod索引库,创建远程私有索引库,和本地私有索引库。