iOS组件库创建(一)
一、创建远程私有索引库
1、什么是远程私有索引库?
远程私有索引库, 用来检索私有库,例如终端输入pod search AFNetworking,可以检索出相关库的名称、版本、子库等信息。
2、创建远程私有索引库项目
(样例使用的是CODING平台、可以使用github等其他平台) CODING平台创建项目iOS_xxx索引库 代码库MJSpecs:
调研中,创建组件仓库中均使用https没有使用SSH,所以在项目都是用https路径。
3、打开终端,将远程私有库关联到本地
cd ~/.cocoapods/repos
pod repo add MJSpecs https://e.coding.net/xxxx/xxxx/MJSpecs.git
执行中会提示输入用户名密码,如下图:
克隆之后打开.cocoapods/repos文件,终端open ~/.cocoapods/repos 多出MJSpecs项目文件:
到此索引库关联完成。
二、创建远程私有组件库
1、创建样例组件库MJKit
终端切换到本地project文件目录下(project自己创建,放置组件项目的文件夹):
cd /Users/xxxx/Desktop/project
pod lib create MJKit
#MJKit代表想要封装的组件名称, 这个根据自己的需求而定。
创建的时候会可能会提示输入邮箱,输入之后,会提示输入项目的一些属性,如下图:
创建完成之后自动会自动打开此项目,目录结构如下图:
可以发现在Pods文件下面现在有一个MJKit的文件夹,就是我们上面pod lib create MJKit时候创建的文件夹名
2、创建组件远程仓库
样例在CODING平台创建项目iOS_组件库:
创建代码仓库MJKit,如下图:
3、创建成功后配置MJKit项目的.podspec文件,文件位置
4、配置成功后,把本地的组件代码提交到远程仓库
这里使用命令行: cd /Users/xxx/Desktop/project/MJKit
#添加远程仓库 git remote add origin https://e.coding.net/xxx/xxx/MJKit.git git
push -u origin master #第一次可能会报错可尝试用
git push -u origin master -f 可能会覆盖远程的修改
git add . #记得后面一定要有 .
git commit -m "创建样例组件"
git push -u origin master git tag '0.1.0' #注意:这里的tag号必须和.podSpec文件的版本号一致
git push --tags
推送之后查看远程平台,如下图:
5、对文件进行本地验证和远程验证(在工程目录下)
从本地验证你的pod能否通过验证:
pod lib lint --use-libraries --allow-warnings
--verbose:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose来查看详细的验证过程来帮助定位错误。
--use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。
--allow-warnings:表示允许警告。
从本地和远程验证的pod能否通过验证
pod spec lint --use-libraries --allow-warnings
将组件项目的.podspec 文件提交到本地的私有索引仓库,然后再push到远程私有索引仓库
pod repo push MJSpecs MJKit.podspec --use-libraries --allow-warnings
此时打开~/.cocoapods/repos
6、查看远程私有索引库
7、使用终端查看自己的私有组件
pod search MJKit
如果没有找到可以删除search_index.json
终端输入rm ~/Library/Caches/CocoaPods/search_index.json
再pod search MJKit
三、项目中组件库使用
创建一个新的项目ModuleDemo,添加podfile文件,如下:
source 'https://github.com/CocoaPods/Specs.git' source 'https://e.coding.net/xxx/xxx/MJSpecs.git' use_frameworks! platform :ios, '9.0' target 'ModuleDemo' do pod 'MJKit', '0.1.0' target 'ModuleDemoTests' do inherit! :search_paths end end
这个时候cd到项目下执行pod install是会报错的,提示找不到此库。
首先需要在终端执行pod repo update --verbose 更新库,之后再cd到项目下执行pod install。
版本更新之后也需要更新。