组件21:自动化-自定义action

自定义action主要是编写Fastfile。
编写好的Fastfile可以放在多个组件中使用。

原因:有些action, 并没有人提供; 那么我们可以自己自定来满足我们的需求

示例:在制作私有库的过程中, 如果上一个标签已经存在, 再次创建则会报错;

解决方案: 先判断标签是否存在, 如果存在, 则删除标签(本地/远程)。

自动化流程:

  1. 安装pod库
    cocoapods
  2. 提交代码到远程代码仓库
    git_addgit_commitpush_to_git_remote
  3. 如果标签存在, 则删除本地/远程标签(重要步骤)
  4. 打标签, 并提交
    add_git_tagpush_git_tags
  5. 对spec文件进行验证&提交
    pod_lib_lintpod_push

自定义action及使用

  1. cd进入本地库根目录
  2. fastlane new_action定义新的航道action
  3. 输入remove_tag,会生成actions文件夹和remove_tag.rb,即action对应的ruby文件。
  4. 打开remove.rb编辑,如果不会可在这里找:https://github.com/fastlane/fastlane/tree/master/fastlane/lib/fastlane/actions,比如在这个页面找git_add。
  5. 进入根目录,验证定义的action,fastlane action remove_tag,成功后会列出该action的相关信息。
    罗列action信息.png
  6. 完善fastlane,把刚才自定义的action用上去。


    Ruby判断句使用自定义action
  7. 执行航道,fastlane ManagerLib tag:0.1.0 target:LFRemotePlayer,报了错找不到tag。是Ruby文件中前后的参数写的不一致导致的。
    前后参数要一样.png
  8. 查看远程是否存在提交的文件,pod搜索。
  9. 宿主工程使用。

遇到的坑

1.当你想查看某个action的描述的时候,如果是在本地私有库的根目录下,则查不到,需退出到该根目录, cd .. 。
2.验证action遇到的错:


Snip20170712_139.png

3.Ruby文件中前后参数不一致,导致找不到参数错误。
4.封装的sqlite组件安装,要在spec文件中写:s.library = "sqlite3"

自定义action的Ruby文件——文件图

自定义action的Ruby文件--删除本地和远程标签.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目前比较流行的组件化开发,针对多个 app 要用同一套代码,将其做成 pod 仓库是比较好的解决方案。代码只有一份...
    ripperhe阅读 10,784评论 8 39
  • 作为架构师的我们常常要面临的一个难题就是技术选型。现在无论是商业项目也好,开源项目也好,可供选择的方案实在是太多,...
    老邢Thierry阅读 10,359评论 17 52
  • 本人一直认为:在程序的世界里,一切重复性的,流程化的工作都可以交给自动化去完成。 在移动开发中也是如此:其实写代码...
    老邢Thierry阅读 11,397评论 25 68
  • 边干边学 这种方法承认,商界人士都很忙,很难挤出时间来练习技能。他们和演唱会上的钢琴家或者专业运动员不同,后者真正...
    Fly_Catkin阅读 1,513评论 0 0
  • 恍惚的岁月无情 狠狠地将我摔破 破碎的心和血 也流了一地 我只希望它流进海里 能把我的爱与海融为一体 纵使你在天涯...
    即是我阅读 2,905评论 0 0

友情链接更多精彩内容