一.mac环境配置
1.ruby
2.pod
3.node
4.xcodeproj
二.在码云上创建自己的私有项目
1.填写项目名称 项目介绍
2.要首选选择开源许可证在选择是否开源 开源许可证我们选择MIT
3.是否开源选择私有或者公开都行
4.然后创建项目
三.本地创建项目
项目名称需要与在码云创建的名称一直
四.为将要组件化的项目制作*.podspec文件
1.打开终端 cd到你创建的项目下
2.然后输入 pod spec create PrivateLib(PrivateLib为项目名称) 命令创建.podspec(创建工程)podspec文件的作用是用于连接本地你创建的项目与你在码云上创建的私有源项目
3.然后配置podspec文件 podspec文件例子
打开podspec文件配置
s.name : 项目名
s.version : 版本号(需跟后面打 Tag 的值相等)
s.description:私有库注释
s.homepage : 项目主页
s.license : 开源协议(这里我们选择 MIT )
s.source : Git 仓库地址(码云创建的私有项目仓库地址)tag后面去掉#号与双引号(tag => s.version)
s.ios.deployment_target : 项目最低支持版本
s.source_files : 具体去那个目录下下载特定共享代码(注意:这里的地址与 .podspec 文件同级目录开始,,示例:PrivateLib/Classes/** /*表示如下目录下的所有文件 s.frameworks : 项目所依赖的系统库(如果需要) s.dependency : 项目所依赖的第三方库(如果需要)
s.dependency:具体是pod里面用到的第三方源文件,所有的源文件都要列举在这里
s.dependency "HKBase"
s.dependency "HKNetworking"
五.将本地工程与远程私有 Git 仓库关联
打开终端 cd到项目中
git init之后
git remote add origin <你的项目地址>
//下载所有文件
git pull origin master
//添加所有新加的文件
git add .
//提交新添加的文件到本地gitgit commit -m 'add file'
//将本地更新push到远程git服务器
git push origin master
//给本地仓库打个tag
git tag -m 'add tag' '0.1.0'
//将tag推送到远程服务器
git push --tags
如果项目push不成功就使用git pull origin master --allow-unrelated-histories重新pull之后在push
接着就是验证我们刚才的podspec文件,验证指令是:pod lib lint 来验证本地修改的podspec文件与你在码云上创建的私有文件是否匹配
如果有警告的话可以使用pod lib lint --allow-warnings 来验证,这个是忽略警告的验证
如果终端报错 xcodebuild: KRTLogin/KRTLogin/KRTLogin/HKLoginVC.m:12:9: fatal error: could not build module 'KRTPrivateLib'有可能是因为找不到私有库的源文件,需要添加语句 pod lib lint --allow-warnings --use-libraries --sources='HKRTPodspec,master' 来制定私有源
六.把私有库推送到服务器
推送命令如下 pod repo push XXXPodspec PrivateLib.podspec(XXXPodspec为主库名称)(PrivateLib为自己创建的私有库名称)
若果有警告可以用--allow-warnings来提交忽略警告 命令为 pod repo push XXXPodspec PrivateLib.podspec --allow-warnings
若果报错提示找不到私有源文件可以用 pod repo push HKRTPodspec KRTNetworkQuery.podspec --allow-warnings --use-libraries来确定提交
我们推送到服务器(主库)的的并不是代码,而是我们刚开创建的podspec文件以及项目的tag,然后pod的时候,他们会根据podspec里面配置的连接以及tag值下载相应代码
七.使用私有库
# 官方Cocoapods的源
source 'https://github.com/CocoaPods/Specs.git'
# 本地私有源
source 'https://gitee.com/zhenxb/HKRTPodspec.git'
platform :ios, '9.0'
target 'KRTLogin' do
# Private Pods
pod 'HKBase' # 基础库pod 'HKNetworking' # 网络请求
end
解释 :官方Cocoapods的源是为了让我们可以pod到官方源下载例如afn等开源文件
本地私有源就是为了让我们可以pod到我们自已的私有化模块(在上面我们已经把我们自已的私有模块都上传到本地私有源里面了,就是步骤六的主库)
KRTLogin为本模块名称,也就是项目名称
在使用私有库的时候,有时候其他人上传的私有库找不到,这个时候需要更新本地的私有库 pod repo update
最后查看私有库
ls ~/.cocoapods/repos