继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

iOS相关事宜的自动化系统

DIEA
关注TA
已关注
手记 412
粉丝 63
获赞 387

图片发自简书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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP