组件化之创建私有远程库

一.创建私有远程索引库

创建一个私有远程仓库主要的步骤如下:

  • 创建远程索引库和私有组件库仓库
  • 将远程索引库添加到本地 pod repo add 索引库名称 索引库地址
  • 创建一个 pod 模板组件库 pod lib create 组件名称
  • 上传代码和打标签
  • 提交 spec 至私有索引库
  • 使用 source 索引库url pod '组件名称'
1.在github上创建两个仓库,分别为私有组件库仓库,以及私有索引仓库
  • 私有组件仓库


    截屏2021-09-27 下午4.07.04.png
  • 私有索引仓库


    截屏2021-09-27 下午4.04.57.png
2.添加私有索引仓库到本地

通过这个命令本地索引仓库管理
pod repo add #本地索引库名称 #远程索引库地址
执行完命令 本地Cocoapods索引库会出现指定的文件

截屏2021-09-27 下午4.21.35.png

3.创建一个pod模板库
  • 创建本地组件仓库文件
    pod lib create #本地组件库名称
    
    成功后会生成一个本地组件库文件
  • 添加组件内容
    删除 ReplaceMe.m 文件,添加基础组件相关的内容到 Classes 文件夹中
  • 安装与测试本地库
    cd到demo路径下,执行命令 pod install进行本地组件库更新,
    引入库文件,进行调用,然后尝试进行项目编译
    import MSTestSpecProj
    
4.上传代码和打标签
  • cd到刚才新建的本地组件库文件夹主目录
    cd /Users/shurui/Desktop/TestProject/MSTestSpecProj
    
  • 将刚才创建的远程组件仓库地址与本地进行关联
    git remote add origin #远程私有组件库地址
    

关联后可以使用git remote -v查看关联远端

  • 提交文件
    提交本地组件库

    // 把本地添加文件加入缓存区
    git add . 
    // 提交代码到本地仓库
    git commit -m '提交' 
    // 推送到远端master分支
    git push -u origin master -f
    

    此时发现远程组件库里面master分支的代码已经跟本地的一致

  • 创建tag

    git tag 0.1.0(注意,这里的tag必须和.podSpec文件的版本一致)
    
    git push --tags
    
5.提交 私有仓库 至私有索引库
  • 执行本地校验命令
      pod lib lint --private --sources=master,#本地索引库名称 --allow-warnings
    
    如果输出:…… passed validation.即表示校验成功
  • cd到本地私有库路径下,将私有库添加到本地索引库
    注意:记得要把podspec文件里s.source 地址换成自己的远程地址
    cd /Users/shurui/Desktop/TestProject/MSTestSpecProj
    // 将私有库添加到本地索引库
    pod repo push #本地索引库名称 #本地私有库名称.podspec --verbose --allow-warnings
    
    如果遇到以下报错,确认下索引库是否有master分支,没有则创建一个
    Your configuration specifies to merge with the ref 'refs/heads/master' from the remote, but no such ref was fetched.
  • 提交成功搜索下私有库
    pod search SRIMProject
    
6.使用私有库
  • 添加私有库搜引地址
    source '#私有组件库地址'
    
  • 添加使用的组件库名
    pod '#私有组件库名称','#版本'
    
7.更新库

如果修改代码或者添加文件,需要先更新组件库,在更新索引库

  1. 组件中podspec文件把版本提高一个

  2. 提交代码到远端库,打上tag,tag和podspec文件里面版本一样,见上方3.上传代码和打标签

  3. pod repo push #本地索引库名称 #本地私有库名称.podspec --allow-warnings

这样pod库就提高了一个版本

8.公有的pod库

公用的pod是要把spec上传到cocospod官方的

1.将spec索引上传到官方需要先注册,命令如下

 pod trunk register 电子邮箱 '您的姓名'

注意邮箱必须正确,收到邮件后需要点击连接确认激活。

2. 激活后将spec push到官方,这个过程可能需要一点时间,请耐心等等待。

pod trunk push #本地私有库名称.podspec
9.注意事项:
  1. 如果执行过程中遇到账密权限问题,可以改用ssh方式,github现在已经取消使用账密进行校验

  2. Swift库文件需要暴露给外部使用的需要用Public或open修饰

    swift3.0中访问控制一共有5个关键字
    
    1. open:可以在任何地方访问、继承和重写
    
    2. public:可以在任何地方被访问,在其他module中不能被继承和重写
    
    3. internal:默认访问级别,在整个模块内都可以被访问
    
    4. fileprivate:其修饰的属性可以再同一个文件被访问、继承和重写,同一个文件指同一个swift文件,一个文件中可以有多个类
    
    5. private:其修饰的属性和方法只能在本类被访问和使用,不包括扩展类
    
  3. Swift库支持OC调用需要添加@objc修饰

参考:
组件化之路
iOS组件化之制作私有库 ,上传到pod.

https://halfrost.com/vue_ios_modularization/#toc-25 组件化介绍
https://www.cnblogs.com/brycezhang/p/4117180.html
https://draveness.me/cocoapods/ 使用cocoapods完成组件化封装

https://www.jianshu.com/p/03592545f11e

你可能感兴趣的:(组件化之创建私有远程库)