组件化课程笔记
多人开发的时候,没有必要吧pods文件夹的东西传过去;
pod install与pod update有什么区别?
pod install是参照podfle.lock文件,里面有详细的版本约束
pod update 是参照 Podfile 去安装依赖,里面可能没有进行版本约束,
1、如果某个第三方更新了,那么有可能代码里的方法被弃用了,导致编译错误。
cocopods 安装第三方库的原理
1、pod setup 将远程索引库拷贝到本地;
2、本地使用pod search 搜索一个库比如搜索AFNetworking
3、本地索引库里有一个索引目录文件,通过这个文件,找到了AFNetworking的索引文件,
4、通过AFNetWorking里的源码地址,安装第三方库
开发一个框架给别人用,需要哪些步骤
1、自己写框架源码
2、本地新建一个描述文件
3、把源码上传至远程地址
4、把描述文件传到远程索引库里
添加远程仓库
git remote add origin https://github.com/daruo/PodTest02.git
添加tag和删除tag
git log //查看提价记录
git tag //查看tag
git tag -a‘0.0.1’-m ‘第一个tag’ //新建本地tag方法1 -a添加tag -m mster分支 本地添加tag
git push —tags //将tag 推送到远端仓库
git tag‘0.0.2’ //新建本地tag方法2
git push origin 0.0.2 //将代码推送到远端并,并将此次记录标记为0.0.2
删除tag 删除某个已新建的tag
git tag -d 0.0.1 //删除本地0.0.1 tag
git push origin :0.0.1 //删除远程0.0.1tag 注意在版本号前加:
创建spec
pod spec create xxxlib
s.name =“XXXLib”
s.version = “0.0.1”
s.summaray =
git init 初始化本地仓库
git status 查看文件变更状态 红色 工作区有变更 绿色 变更文件添加到暂存区
git commit -m‘变更描述’ 提交到本地master分支
git push origin master 推送到远端master分支
创建仓库描述文件
pod spec create podTestLib
修改
s.summary
s.description
s.source
s.source_file 需要包含的资源文件 仓库地址文件 那里可以下载 起一个过滤的作用,不会安装到工程里去
git tag '0.0.1' 新增本地tag
git push --tags 将本地tag推送到远端
//将本地spec文件传到
cocoapods trunk
pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air' —verbose // 加上—verbose之后终端会显示答应信息
最终执行的命令,修改了
pod trunk register daruo258@163.com 'Daruo' --verbose
//修改为自己的可用邮箱
最终可以看到这样一个页面
[!]Please verify the session by clicking the link in the verification email that has been sent to daruo258@163.com
将本地spec 提交到远程
pod trunk push podTestLib.podspec
执行此命令后,会更新本地索引库 ,这个时间有点长。随后会对新建的spec文件进行格式验证,
第一次验证的时候,提示
-> podTestLib(0.0.1)
- ERROR | license: Sample license type.
- WARN | homepage: The homepage has not been updated from default
- ERROR | source: The Git source still contains the example URL.
- WARN | summary: The summary is not meaningful.
- ERROR | description: The description is empty.
- WARN | url: There was a problem validating the URLhttp://EXAMPLE/podTest
原因如下,spec文件没有上传到远程仓库导致license homepage source summary description url都为默认。而默认值都是无法找到正常配置信息的。
pod repo 指定路径
pod 'TestLib',:path => '../TestLib'
pod install的过程
先找 .xcodeproj文件,然后再去找资源(第三方)路径
../ 是返回到上级文件夹
本地库如何进行版本管理?
cd TestLib 进入本地源文件
git add .将修改添加入缓存区
git commit -m‘更新了xxx’ 提交本次修改
git push 推送 实际推送不成功,但是还是要推送。
2018年06月27日09:51:11第三课
组件化的方式
1、工程导入工程,编译要很久。 要把导入的文件的.m在compile soruce 中引入
2、使用framework的形式。 + 新建framework
3、远程私有库 码云
3.1创建码云库Spec 记录ssh地址
git@gitee.com:daruo258/Spec.git
pod repo add Spec git@gitee.com:daruo258/Spec.git //添加索引库源 (本地,远程都可以)
git@gitee.com:daruo258/Spec.git是一个ssh地址
会提示没有权限
ssh-keygen -t rsa -C “daruo258@163.com” //生成一个公钥
输入自定义公钥密码,可以为空
cat id_rsa_Spec 查看id_ras_Spec私钥
cat id_rsa_Spec.pub 查看id_ras_Spec_pub公钥
.ssh 路径 user/daruo/.ssh
ssh -Tgit@gitee.com 检测是否有ssh权限
如果是denied,可能是公钥没有添加到know_hosts里
ssh-add -k id_rsa_Spec //将id_rsa_Spec添加到know_host里
//删除索引源
pod repo remove Spec //删除Spec索引库
//克隆远程ssh仓库地址
git clone git@gitee.com:daruo258/Spec.git
码云配置个人个人公钥
https://gitee.com/profile/sshkeys 添加公钥 在这里添加的公钥拥有读写权限
如果在某个仓库的管理页面设置部署公钥,那么只有clone 和pull 操作的权限,只是只读。