From 7a6e052e75ba9a1ffe385ba65def6a7953344fe7 Mon Sep 17 00:00:00 2001 From: zhangmeng <494089941@qq.com> Date: Fri, 2 Jul 2021 15:22:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=93=E5=8C=85=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=91=BD=E5=90=8D=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pubspec.lock | 4 ++-- pubspec.yaml | 3 +++ tool/config.dart | 14 ++++++++++++++ tool/grind.dart | 44 ++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 tool/config.dart diff --git a/pubspec.lock b/pubspec.lock index 61f08dc..1e2f224 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -724,7 +724,7 @@ packages: source: hosted version: "0.2.1" path_provider: - dependency: transitive + dependency: "direct main" description: name: path_provider url: "https://pub.flutter-io.cn" @@ -1065,7 +1065,7 @@ packages: source: hosted version: "0.2.0" yaml: - dependency: transitive + dependency: "direct dev" description: name: yaml url: "https://pub.flutter-io.cn" diff --git a/pubspec.yaml b/pubspec.yaml index cdeffbb..1e22b79 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,6 +30,8 @@ dependencies: bot_toast: ^4.0.1 #websocket web_socket_channel: ^2.1.0 + #文件路径 + path_provider: ^2.0.1 extended_text: ^5.0.4 @@ -82,6 +84,7 @@ dev_dependencies: #json序列化 json_serializable: ^4.1.1 build_runner: ^2.0.3 + yaml: ^3.1.0 flutter: uses-material-design: true diff --git a/tool/config.dart b/tool/config.dart new file mode 100644 index 0000000..59b0abf --- /dev/null +++ b/tool/config.dart @@ -0,0 +1,14 @@ +class Config { + ///用户根目录 + static const String homeDir = '/users/zhangmeng'; + + ///包名 + static const String packageName = 'aku_community'; + + ///打包目录 + static String get buildPath => + './build/app/outputs/flutter-apk/app-release.apk'; + + ///打包目录文件夹 + static String get buildDir => './build/app/outputs/flutter-apk'; +} diff --git a/tool/grind.dart b/tool/grind.dart index 2c802c1..c576fdf 100644 --- a/tool/grind.dart +++ b/tool/grind.dart @@ -1,4 +1,11 @@ +import 'dart:io'; + +import 'package:common_utils/common_utils.dart'; import 'package:grinder/grinder.dart'; +import 'package:yaml/yaml.dart'; +import 'package:path/path.dart'; + +import 'config.dart'; main(args) => grind(args); @@ -16,30 +23,49 @@ clean() => defaultClean(); @Task() buildApk() async { - await runAsync('flutter', arguments: [ + await runAsync('fvm', arguments: [ + 'flutter', 'build', 'apk', '--target-platform=android-arm64', '--dart-define', 'ISPRODUCT=true' ]); + String date = DateUtil.formatDate(DateTime.now(), format: 'yy_MM_dd_HH_mm'); + String version = await getVersion(); + await runAsync('mv', arguments: [ + Config.buildPath, + '${Config.buildDir}/${Config.packageName}_${version}_release_$date.apk' + ]); } @Task() buildApkDev() async { - await runAsync('flutter', arguments: [ + await runAsync('fvm', arguments: [ + 'flutter', 'build', 'apk', '--target-platform=android-arm64', '--dart-define', 'ISPRODUCT=false' ]); + String date = DateUtil.formatDate(DateTime.now(), format: 'yy_MM_dd_HH_mm'); + String version = await getVersion(); + await runAsync('mv', arguments: [ + Config.buildPath, + '${Config.buildDir}/${Config.packageName}_${version}_beta_$date.apk' + ]); } @Task() buildIos() async { - await runAsync('flutter', - arguments: ['build', 'ios', '--dart-define', 'BUILD_TYPE=PRODUCT']); + await runAsync('fvm', arguments: [ + 'flutter', + 'build', + 'ios', + '--dart-define', + 'BUILD_TYPE=PRODUCT' + ]); } @Task('import 排序') @@ -56,3 +82,13 @@ void format() { void gen() async { await Pub.run('build_runner', arguments: ['build']); } + +@Task() +Future getVersion() async { + String projectPath = Directory('.').absolute.path; + String yamlPath = join(projectPath, 'pubspec.yaml'); + String yamlContent = await File(yamlPath).readAsString(); + dynamic content = loadYaml(yamlContent); + String version = content['version']; + return version; +}