为了账号安全,请及时绑定邮箱和手机立即绑定

iOS相关事宜的自动化系统

标签:
iOS

图片发自简书App

人生三境

第一境界

    —独上高楼,望尽天涯路——出自晏殊的《蝶恋花》(一作《鹊踏枝》)

第二境界

    —衣带渐宽终不悔,为伊消得人憔悴——出自柳永的《蝶恋花》

第三境界

    —蓦然回首,那人却在灯火阑珊处——出自辛弃疾《青玉案》

Coder三境又在哪里?

    我为什么要做这个自动化系统?

     刚来公司时,正好赶上自动化业务的开始,也提出了自己的一些意见,也有自己的一些小想法,我实在是讨厌每天敲同样的、繁琐的、易出错的pod、git命令,它们只是一个工具,不该被其所束缚,当发现其不适合的地方,就要想着改造、包装它,所以第一个小自动化系统shell版本(https://github.com/LONGDDSF/Automate)诞生了。经过完善后,我觉得自己用着不错后,我要推广,想着解放每个人的双手去做主要的事情,快速敲下一行自创的命令,看着显示器里自动更新日志,翘着二郎腿,等它自动执行完毕,哈哈!

     可是遇到了问题,一是不被理解,二是体验不好,结果推广不开。

    如何拥有更好的体验?我把关注点放到了cocoapods/git,决定开始模仿它们,做出体验类似的工具。

     语言基础是Ruby,可是完全没接触过啊,放弃吗?完全不像我的风格,人在塔在,塔亡人亡!开始学习Ruby,如何快速学习一门语言,我想到了王垠这个好吹牛逼的家伙,你还不得不服。经过基础知识学习、实践练习,我也算会用ruby了。如何做到像git那样的命令,刚开始查到了一个第三方库,那个相关知识是真少;又换成系统的方案,可查资料也少;最后我查看cocoapods的源码,找到它自己写的一个Command库,也不会用,照葫芦画瓢呗,然后逐渐理解了ruby这门语言。

    期间,我对朋友讲,用了这么久的Objective-C,我感觉就像在用大白话文,当我使用Ruby时,我感觉像在读文言文、古诗词 - 优美!!

    Today,我终于将第一个shell版本完全转化、优化为Ruby版本,并开始内测。我给他起了一个名字“smart tool”,外号sl,虽然他的功能还比较少,感觉就像一个宝宝,终究会成长起来,因为我给了他一个好的基因和基础,也期待志同道合的人,我们一起来做这件事。

如何使用?

    项目源码:https://gitee.com/CWDong/stool

    已发布到了RubyGem:https://rubygems.org/gems/stool

    Mac上,需要使用gem安装:

    gem install stool

    配置 - 像podSpec一样,文件配置:

    #stool 配置

        Config.new do |c|

          #添加一个本地lib pool,池中是你clone下来的各个pod

          #name - 随意取

          #path - lib pool的本地路径

          c.addPool do |p|

            p.name = '本地lib池 - 1'

            p.path = ''

          end

          #再添加一个本地lib pool

          # c.addPool do |p|

          #     p.name = '本地lib池 - 2'

          #     p.path = ''

          # end

          #添加一个主工程,iOS-workspace工程

          #name - 随意取

          #tag - 命令操作需要,工程的唯一标识

          #path - 路径目下要有workspace/podfile文件

          #addLocalLib - 项目使用的本地lib(再无需手动修改Podfile),默认都是源码

          #addOtherLibUseCode - 非本地lib,配置使用源码

          #allLibsUseCode - 是否所有lib都使用源码,默认false

          c.addTask do |t|

            t.name = 'workspace主工程-1'

            t.tag = '1'

            t.path = ''

            t.addLocalLib(['pod1',

              'pod2',

              'pod3'])

            t.addOtherLibUseCode(['pod4'])

            #t.allLibsUseCode

          end

        end

    终端使用:sl



作者:素还真人
链接:https://www.jianshu.com/p/6ebfae98abd8

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消