Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 4.04 KB

README.md

File metadata and controls

63 lines (45 loc) · 4.04 KB

PPPrivatePodPushScript

预览图

简介

私有库的修改, 提交等操作非常没有技术含量并且繁琐.

  1. 修改私有库代码文件
  2. 修改私有库.podspec文件的版本号
  3. 提交所有修改的文件
  4. 添加版本的tag并且push所有的提交.
  5. cd到私有库.podspec文件所在目录, 验证并push私有库.(push的时候会执行pod lib lint)操作, 所以这里省略了.
  6. 后续可能还会涉及到修改主工程私有库的版本号, pod install, 运行主工程等操作.
  7. 在以上的基础上, 编写了private-pod-push-script.sh脚本. 在终端输入几下命令, 便完成了以上2~5的所有操作.

使用方式

  1. git clone 本仓库, 并cd进入本仓库目录. (建议加入本仓库到Sourcetree, 这样以后我更新了, 你也可以在 Sourcetree检测到)

  2. config.sh里面配置工作路径, 填写所有组件的主仓库地址, 组件项目附加的文件路径以及组件名.(配置好你的组件路径, config.sh文件可以放在任何地方)

    • 主仓库地址http://host.com/iOS/Specs.git(这个是你所有组件存放.podspec文件的仓库地址)
    • /Users/pengpeng/Desktop/GithubTest/PPTestComponent/PPTestComponent.podspec/Users/pengpeng/Desktop/PPKit.podspec 是我的组件地址
    • /Users/pengpeng/Desktop/是工作路径
    • GithubTest/PPTestComponent/是附加地址(附加地址选填)
    • PPTestComponent.podspecPPTestComponent是组件名
  3. 在终端输入sh private-pod-push-script.sh执行脚本.

3. 在终端输入chmod +x private-pod-push-script.sh, 给private-pod-push-script.sh文件增加可执行权限. (此步骤只需要执行一次).

4. 然后输入./private-pod-push-script.sh既可执行脚本.

  • 自动获取你配置的所有组件, 根据编号排序, 输入你想提交的组件编号.
  • 自动获取当前.podspec版本号和上一次git所提交的tag号, 输入你想设置的版本号, 再输入注释.
  • 选择你想push到的主仓库名称, 如果验证成功的情况下, 所有流程已完成.

做好前期的配置后, 以后只需要cd到脚本所在的文件目录下, 执行第4步中的操作即可.

目前完成的功能

脚本里面我写了很多注释, 可以按需修改, 增减自己的需求进去.

  • 脚本可以放在任何文件夹, 可以配置多个组件, 多个组件的路径可以不一致, 1个脚本对应多个组件.
  • 根据config.sh配置文件的内容, 展示你所有配置的组件仓库.
  • 对配置的组件.podspec文件是否存在进行判断.
  • 根据输入的组件编号配置脚本运行环境.
  • 获取组件.podspec文件版本号, 并且根据你的输入的版本号修改.(自动获取组件最后一次提交的版本号, 方便你判断最新的版本号).
  • 输入注释, 自动提交所有修改的文件并且push.
  • 根据选择的本地specs文件夹进行组件推送.
  • 脚本有重要的输出内容时,输出的文本颜色特殊处理.
  • 编号类型的输入, 会对内容进行验证, 输入错误(非数字)会有容错处理.
  • 组件推送后重要的信息输出.
  • 增加推送是否成功的判断, 在终端输出不同的内容提示使用者.
  • 可以设置默认推送的仓库名称,必须设置有效的文件夹名称才会生效,获取方式在终端cd ~/.cocoapods/repos/目录下获取.(如果你需要推送不同的仓库概率比较高, 建议不要设置这个)

后续还会根据需求增加别的功能, 为了方便使用者更新脚本, 所以把配置文件和脚本拆分了. 只需要更新脚本, 再把最新的脚本和配置文件放到一起既可. 也可以把配置文件放到别处, 配置文件的路径在脚本中可以设置.

说明

为了获取到私有库是否推送成功, 脚本对pod repo push的命令输出内容进行重定向到临时文件, 所以pod repo push在终端的输出打印会失去原有的特殊彩色. 也就是说预览图中的黄色输出内容会变成普通颜色.