shell脚本在flutter上的应用

2022-11-24  本文已影响0人  海荣荣

    近几个月,项目在国内外应用商店屡次被拒,尤其小米GooglePlay,为符合应用商店的审核规范,每次发版都需手动更改很多文件,所以脚本在这个时候开始发挥他的作用了。

目录:

1:shell脚本介绍

2:在flutter上的应用



一、shell脚本介绍

1:shell 的理解

一个命令解释器,它通过接受用户输入的Shell命令来对程序的运行或对计算机系统进行控制,何为解释,个人理解就是,向操作系统解释你的输入,并且处理操作系统的输出结果。

2:shell 结构和执行

以#!/bin/bash开头,告诉系统命令是由解释器/bin/bash执行的。

以#开头的行作为解释说明,除了第一行的#!/bin/bash,其余以#开头的行的内容将被认为是注释,不会被解释器执行。

脚本的名字以.sh结尾,用于区分这是一个shell脚本

3:shell 的简单运用

创建test脚本:  touch test.sh

运行test脚本:./test.sh 或者 bash/sh test.sh

test脚本传参:$ ./test.sh 1 2 3  ./test.sh第一个参数为:1第二个参数为:2第三个参数为:3,脚本内获取参数的格式为:$nn代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

另就是还有很多语法,比如重定向,管理文件等等,我觉得如果是想利用脚本进行 自动化办公的,基本上所有的语法的学习,最终都会落脚到对系统文件的操作上,想熟悉可以进入菜鸟学习,,谁还不是从菜鸟一点一点进阶来的呢,哈哈。


二:在flutter上的应用

主要是为了实现自动执行舍弃相关权限以及代码文件,自动化打包,apk命名规范。

实现步骤大致如下:

# 配置参数:params()

# 管理文件:config()

# 执行清缓存命令:flutterBuild()

# 最终执行打包apk全部流程:apk()

flutter 是命令式打包,先简单罗列在项目中常用的:

//打包命令

flutter build apk --release --flavor internal --split-per-abi -build-number 1

--release 指定 debug 或 release

--flavor 指定打包的生产环境

--build-number 构建的版本号;

--split-per-abi:表示告知需要按照我们指定的类型分别打包,如果移除则直接构建包含所有 CPU 架构的 Apk 包;

我们也可以利用--dart-define 自定义多渠道的功能

//定义并设置渠道参数--dart-define=APP_CHANNEL=normal//多个参数 --dart-define=APP_CHANNEL= google --dart-define=APP_CHANNEL=xiaomi


下面是具体讲解实现步骤:

配置参数:可以把一些打包需要的参数配置进去,比如:

# 管理文件:比如xiaomiConfig(),通过sed命令去管理。

# 执行打包前清缓存命令:flutterBuild()

执行flutter clean 和 pub get 去获取最新的依赖项

# 最终执行打包apk全部流程:apk()

执行命令前 传入打包需要的参数 比如多渠道名称,或者后续也可以对生产环境以及版本名称,版本号一一以参数的形式传入。

具体如何使用:

比如创建test.sh,想打包安卓下的google 完全可以具体传参数:

./test.sh -o:1 -s:1

-o:1 代表具体系统 1表示apk

-s:1代表商店类型 1表示google

至此一个shell 脚本在flutter上的应用demo 基本完毕,有兴趣可以根据自身公司业务进行编写。

上一篇 下一篇

猜你喜欢

热点阅读