diff --git a/README.md b/README.md index b127990..cb08666 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,11 @@ flutter pub run grinder build-apk --v ``` ### 加固应用后签名 - +//加固使用腾讯云 +//签名前请确保已安装java环境 +//签名前请将加固后的的安装包重命名为"RECOOK_reinforce.apk",并移动至”/Users/$name/Downloads/buils/“目录下 ```bash -flutter pub run grinder sign --input=xxx.apk +grind sign ``` ### 预安装软件包 diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 88be7f3..2a45ce6 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -34,6 +34,7 @@ - '$androidSdkRoot/build-tools/30.0.2/apksigner'; + '$androidSdkRoot/build-tools/30.0.3/apksigner'; ///下载目录 static String get downloadPath => '$homeDir/Downloads'; ///打包目录 static String get buildPath => - './build/app/outputs/flutter-apk/app-release.apk'; + './build/app/outputs/flutter-apk/app.apk'; ///打包目录文件夹 static String get buildDir => './build/app/outputs/flutter-apk'; diff --git a/tool/grind.dart b/tool/grind.dart index c60fc4a..7b41f64 100644 --- a/tool/grind.dart +++ b/tool/grind.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:common_utils/common_utils.dart'; import 'package:grinder/grinder.dart'; -import 'package:path/path.dart'hide context; +import 'package:path/path.dart' hide context; import 'package:yaml/yaml.dart'; import 'config.dart'; @@ -19,16 +19,31 @@ test() => new TestRunner().testAsync(); Future releaseApk() async { stdout.write("Build APK 📦\n"); stdout.write("BUILDINGAPK\n"); - await Process.start('flutter', ['build', 'apk']).then((proc) async { + await Process.start('fvm', [ + 'flutter', + 'build', + 'apk', + '--target-platform=android-arm64', + '--dart-define', + 'ISDEBUG=false' + ]).then((proc) async { await stdout.addStream(proc.stdout); await stderr.addStream(proc.stderr); }); stdout.write("\rBuild APK DONE 📦\n"); stdout.write("copy build to download 🛠\n"); + + 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' + ]); + stdout.write("rename done 🛠\n"); await Process.run('rm', ['-rf', '${Config.downloadPath}/builds']); await Process.run('mkdir', ['${Config.downloadPath}/builds']); await Process.run('cp', [ - Config.buildPath, + '${Config.buildDir}/${Config.packageName}_${version}_beta_$date.apk', '${Config.downloadPath}/builds/${Config.packageName}_release.apk' ]); @@ -37,6 +52,7 @@ Future releaseApk() async { stdout.write("opening tencent reinforce 🛠\n"); await Process.run( 'open', ['https://console.cloud.tencent.com/ms/reinforce/upload']); + stdout.write("请将加固后的文件重命名为RECOOK_reinforce.apk,并移动至builds文件夹"); } @Task() @@ -46,7 +62,14 @@ Future releaseDev() async { stdout.write("Build Dev APK 📦\n"); stdout.write("BUILDINGAPK\n"); - await Process.start('flutter', ['build', 'apk']).then((proc) async { + await Process.start('fvm', [ + 'flutter', + 'build', + 'apk', + '--target-platform=android-arm64', + '--dart-define', + 'ISDEBUG=false' + ]).then((proc) async { await stdout.addStream(proc.stdout); await stderr.addStream(proc.stderr); }); @@ -78,7 +101,9 @@ sign() async { 'pass:${Config.recookPassword}', '--out', '${Config.downloadPath}/builds/${Config.packageName}_release_signed.apk', - input, + // input, + // '--input', + '${Config.downloadPath}/builds/${Config.packageName}_reinforce.apk' ], ); stdout.write(process.stdout); @@ -120,8 +145,8 @@ buildApk() async { @Task() @Depends(getVersion) buildApkDev() async { - await runAsync('fvm', arguments: [ - 'flutter', + await runAsync('fvm', arguments: [ + 'flutter', 'build', 'apk', '--target-platform=android-arm64', @@ -140,14 +165,15 @@ buildApkDev() async { @Task() buildIos() async { runAsync('fvm', - arguments: ['flutter','build', 'ios', '--dart-define', 'ISDEBUG=false']); + arguments: ['flutter', 'build', 'ios', '--dart-define', 'ISDEBUG=false']); } @Task() -builIosDev()async{ - runAsync('fvm', - arguments: ['flutter','build', 'ios', '--dart-define', 'ISDEBUG=true']); +builIosDev() async { + runAsync('fvm', + arguments: ['flutter', 'build', 'ios', '--dart-define', 'ISDEBUG=true']); } + @Task() Future getVersion() async { String projectPath = Directory('.').absolute.path;