开始说明说明步骤之前,先做一个场景假设:
现在我要把自己项目中的首页模块Home做成私有库,方便之后的组件化执行。基于这个场景我们开始说明这个步骤:
一
创建一个远程索引库,这个远程索引库叫什么名字,可以自己定义,我就使用当期的项目来命名,为Business,这是个索引库,后续这个项目里面的其他模块的索引文件podspec都会放到这个下面。
-
我们先要去coding(现在Coding和腾讯云合作,升级后就在腾讯云开发者平台)上面创建一个项目,命名为Business,如图:
Business库 -
创建一个repo索引库Business,地址为上面创建的Business库git地址,指令为:
pod repo add Business https://git.dev.tencent.com/wode_weiyi/Business.git
这个地址https://git.dev.tencent.com/wode_weiyi/Business.git
也可以使用ssh的地址。不过后面要在podfile文件里面要与之对应,不然会自动创建一个repo索引库。
二
远程索引库创建完成后,下面就需要去创建一个测试的项目,测试Home模块单独出来的是否可用。建议使用pod指令创建,这样会避免后续的很多问题且简单。
pod lib creat Home
这条指令会让你做几个选择,如下面代码
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> Yes
这里第一个需要自己注意下,下面的跟着写就可以了!不会影响后续操作。
完成上述的选择后,你的目录文件会出现如图的样式:
文件目录
然后将单独出来的Home模块放到图中红色框中,然后把 ReplaceMe.m
文件删除掉。
三
三(1)
执行指令
pod install
这样就完成了本地私有库的创建和测试工程,通过测试后,我们就可以把本地私有库制作成远程私有库了
三(2)
- 再去Coding上面创建一个项目Home,用来存放Home库,并用于配置Home.podspec文件。
- 修改Home.podspec文件里面的一些参数,先看下文件里面都有什么参数配置:
Pod::Spec.new do |s|
s.name = 'Home'
s.version = '0.1.0'
s.summary = '基础组件'
s.description = '包括基本配置,常量,扩展,工具类等'
s.homepage = 'https://dev.tencent.com/u/wode_weiyi/p/Home'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'huzhihui' => 'wonderfulhzh@163.com' }
s.source = { :git => 'https://git.dev.tencent.com/wode_weiyi/Home.git', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
s.source_files = 'xxx/Classes/**/*'
end
参数说明:
s.version
:版本,这个需要注意下,这里的版本需要和git上面的版本一致,不然是无法提交上去的
s.summary
:简单的描述
s.description
:详细描述,这个描述一定要比简单描述长
s.homepage
: 见下图中的的说明
s.source
:Home库的git路劲,修改git里面的地址就可以,见下图说明
s.author
:用户信息
s.ios.deployment_target
:支持的ios版本
s.source_files
: Home库中文件的地址,具体说明可参考CocoaPods 操作过程中出现的错误中的第一个问题
三(3)
- 修改完Home.podspec文件后,需要使用质量检测工具检测下当前的项目Home是否没有问题。指令为:
pod lib lint --allow-warnings --use-libraries
如果是swift项目的话,则会出现下面这个提示:
-> Home (0.1.0)
- WARN | [iOS] swift_version: The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`
[!] BaseComponent did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
You can use the `--no-clean` option to inspect any issue.
这个提示就是当前swift版本不正确,修改下好了,具体怎么修改,用下搜索引擎就可以了,这里不过多说明,也可以查看CocoaPods 操作过程中出现的错误中的错误5
问题都修复完成后,会得到以下提示,说明当前项目是没有问题了:
-> BaseComponent (0.1.0)
BaseComponent passed validation.
- 接下来就要把添加的Home文件提交到本地的版本库中
git add .
git commit -m 'Home'
- 关联远程私有库,第一次需要关联,这个git地址就是你要存放Home库的远程git地址,后面则不需要
git remote add origin https://git.dev.tencent.com/wode_weiyi/Home.git
git pull origin master //如果第一次关联的话,这语句是获取不到任何东西的,可以不写。后续的更新也可以不写
git push origin master//将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
三(4)
上面都没有问题后,就需要将podspec文件上传到Business的索引库中。
首先需要验证当前Home.podspec文件的正确性
pod spec lint --allow-warnings --use-libraries
由于我们前面都没有做过给git打版本号的操作,就会收到这个提示:
-> Home (0.1.0)
- WARN | summary: The summary is not meaningful.
- ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://git.dev.tencent.com/wode_weiyi/Home.git /var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59 --template= --single-branch --depth 1 --branch 0.1.0
Cloning into '/var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59'...
warning: Could not find remote branch 0.1.0 to clone.
fatal: Remote branch 0.1.0 not found in upstream origin
) during validation.
Analyzed 1 podspec.
[!] The spec did not pass validation, due to 1 error.
- 那就需要给git打版本号了
git tag '0.1.0'//这个版本一定要和Home.podspec文件中的version一致
git push --tags
- 然后再去验证下Home.podspec文件,这一步一定不要省略,不然后面如果错了,就会更麻烦
pod spec lint --allow-warnings --use-libraries
验证通过的提示为:
-> Home (0.1.0)
- WARN | summary: The summary is not meaningful.
Analyzed 1 podspec.
Home.podspec passed validation.
步骤四
第四步就是将验证通过的podspec文件提交到创建的Business本地索引库中。执行
pod repo push Business Home.podspec --allow-warnings --use-libraries
通过上述的步骤,就完成了远程私有库的创建。使用的时候这里说明下。针对私有库的使用,需要在Podfile文件里面指定source地址,一个是你私有索引库的git地址,一个是cocoaPods的公有库git地址。如图:
image.png
这两个souce都需要写,不然不是pod私有库找不到就是pod公有库找不到
pod远程私有库创建就是这样,这是人为比较简单的方法。针对私有库的升级,则和私有库创建大同小异,替换掉之前Home项目里面的ReplaceMe.m同级的代码文件,然后从第三步走下来就好了!有问题欢迎咨询。
网友评论