组件化基本概念不再此介绍了,本文选择的组件化实现方式是用pod集成。
使用pod集成组件前,我们需要提前做的准备工作有:
- 1、有一个代码托管平台的注册账号,并且代码托管平台能创建私密仓库。
- 2、熟悉pod常用的操作命令。常用的有一下几个命令
pod lib create 模板库名称
比如: pod lib create LYFMBase
pod repo
pod repo add 索引库名称 索引库地址
比如: pod repo add LYSpec https://coding.net/u/liyang13145/p/LYSpec
pod repo push 本地索引库名称 xxxxx.podspec
比如: pod repo push LYSpec LYFMBase.podspec
pod lib lint
pod spec lint
pod install
pod update
- 3、熟悉git常用的操作命令。重用的有以下几个命名
git add .
git commit -m 'x'
git remote
git remote add 远程名称 远程地址
比如: git remote add origin https://coding.net/u/liyang13145/p/LYSpec_Code/git
git push 刚才创建的远程名称 master
比如: git push origin master
git tag '0.1.0'
git tag
git tag --tags
git tag -d 0.1.0
git push origin :0.1.0
- 4、文件.podspec的基本编写
当然上面的只是必须技能,下面我们开始实战下:
组件化开发,pod管理,基础测试
1、首先,我们用pod管理组件,需要我们创建一个代码索引库:就像我们平常用的是cocoa管理的一个索引库,它的地址是:https://github.com/CocoaPods/Specs.git
,这个是公开的索引库。当我们做好组件代码后,我们会同我们创建的私有索引库关联,这样以后就可以通过pod进行管理。
2、除了创建索引库之外,我们还需要创建一个组件化的代码仓库,用来存放我们的组件化代码。
1-1、登录代码托管平台,我们创建一个空仓库,记住,我们需要创建的是一个空的仓库,不需要.gitignore 、也不需要许可文件 、也不需要readme。创建完成后,复制仓库地址:
比如我的是:https://coding.net/u/liyang13145/p/LYSpec
1-2、创建本地的索引库。
pod repo add 索引库名称 索引库地址
pod repo add LYSpec https://coding.net/u/liyang13145/p/LYSpec
成功后:pod repo命令验证
当然,我们可以去本地路径查看,会看到两个索引库
2-1、pod命令可以为我们创建一个模板库,我们就使用这个模板库来测试我们的组件,命令是,然后它会让你填一些基本信息,我们按照提示一步一步的往下走就可以
pod lib create LYFMBase
2-2、我们的代码放在Classes文件中,资源放在Asset文件夹中(这里我们先不放资源文件)
2-3、进入到Example演示代码文件,使用git install 安装我们刚才拖入的代码(即 Classes文件夹中的代码)
2-4、测试组件的过程就不说了,反正这一步就是组件代码测试通过了。
2-5、去代码托管平台再创建个仓库,存放代码的仓库,记住还是空的仓库。
2-6、创建好仓库后,记住仓库地址和仓库中代码存放地址
2-7、编辑.podspec文件,这是我的
2-8、上传代码
git add .
git commit -m 'x'
git remote
git remote add origin 远程仓库地址
git tag '0.1.0'
git push --tags
2-9、检测.podspec文件
pod lib lint
3-1、验证通过,我们把.podspec文件提交到本地索引库,然后本地索引库会自动push到远程索引库
pod repo push LYSpec LYFMBase.podspec
4-1、完成,我们可以在桌面另外建立一个工程,然后用pod安装我们自己的组件,新工程中,podfile文件中这么写
source 'https://github.com/CocoaPods/Specs.git'
source 'https://coding.net/u/liyang13145/p/LYSpec'
platform :ios, '8.0'
target 'Test' do
use_frameworks!
pod 'LYFMBase'
pod 'AFNetworking'
end
需要写两个索引资源文件地址,cocoa官方的:安装优秀的三方;我们自己的:安装我们自己的组件。
然后pod install,如果能成功安装,编译运行通过,恭喜大家,我们第一阶段的目标已经成功了。
记录我在集成的过程中碰见的问题和解决方案:
解决方法:
sudo gem uninstall cocoapods
sudo gem install cocoapods