1. 在 码云(https://gitee.com)上创建一个自己的远程私有索引库,用来存放私有框架的详细描述信息.podspec文件
2. 创建本地的私有索引库文件夹,并与远程私有索引库进行关联
1 pod repo
查看本地已存在的索引库
2
pod repo add EdviinSpecs https://gitee.com/hdasj/EdviinSpecs.git
添加远程私有索引库到本地3.在 码云(https://gitee.com)创建一个用来存放项目基础组件的仓库MZCategory
4.快速创建模板测试工程(测试MZCategory)
pod lib create MZCategory
在测试模板工程文件夹下,我们可以看到如下结构:
用Category去替换Replace.m文件,在回到Example路径下,重新执行pod install操作
$ cd /Users/sea/Desktop/EdviinSpecs/MZCategory/Example
$ pod install
打开测试工程可以看到
我们可以在模板测试工程中进行修改和操作!
5.将上面的模板测试工程,提交到第三步创建的远程代码仓库
$ cd /Users/sea/Desktop/EdviinSpecs/MZCategory
编辑podspec文件 具体亏参考podspec用法
$ pod lib lint
(验证上一步编辑的 podspec文件)如果有ERROR,则需要去一个个修改完成,例如某个Category的.m文件没有正确的引入依赖库等都会造成ERROR,解决好所有的ERROR后,验证结果如下:
这是一个警告,目前也并没有找到合适的解决办法,我们添加 --allow-warnings进行忽略
$ pod lib lint --allow-warnings
此时
MZCategory passed validation
则说明验证通过$ git status
$ git add .
$ git commit -m '编辑spec文件'
$ git remote add origin https://gitee.com/hdasj/MZCategory.git
(将本地库与远程代码仓库进行关联)
$ git push origin master
(提交到远程仓库)
$ git tag '0.1.0'
(要与MyProjectBase.podspec文件中的tag值保持一致)
$ git push --tags
(将tag提交到远程)
$ pod spec lint --allow-warnings
(验证远程是否正确)
此时 MZCategory passed validation
则说明验证通过
6.将podspec文件提交到本地的私有索引库
$ pod repo push EdviinSpecs MZCategory.podspec
此时远程私有库到此就已结束
7.利用Pods使用我们自己的私有框架
xcode 新建工程testdemo
$ cd /Users/sea/Desktop/TestDemo
$ pod init
用Xcode打开编辑Podfile文件
$ pod install
打开TestDemo.xcworkspace,此时在pod中可以找到远程私有库的代码并使用了
常见错误
1.报错 ··· error: include of non-modular header inside framework module ··· [-Werror,-Wnon-modular-include-in-framework-module]
解决办法:在pod lib lint 或者 pod spec lint 以及 pod repo push ....时候加上 --use-libraries
pod lib lint --use-libraries
#或者
pod spec lint --use-libraries
#当然,在提交的时候也要加上
pod repo push <repoName> <podspec> --use-libraries