美文网首页Ruby
iOS相关事宜的自动化系统

iOS相关事宜的自动化系统

作者: 素还真人 | 来源:发表于2018-07-02 21:04 被阅读54次
    iOS相关事宜的自动化系统

    人生三境

    第一境界

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

    第二境界

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

    第三境界

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

    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

    相关文章

      网友评论

        本文标题:iOS相关事宜的自动化系统

        本文链接:https://www.haomeiwen.com/subject/ruhruftx.html