章文轩 4 years ago
commit 51e537e706

@ -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
```
### 预安装软件包

@ -34,6 +34,7 @@
<application
android:name="io.flutter.app.FlutterApplication"
android:label="瑞库客"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
tools:replace="android:label"
android:requestLegacyExternalStorage="true"

@ -21,7 +21,7 @@ packages:
name: analyzer
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.7.1"
version: "1.7.2"
animations:
dependency: "direct main"
description:
@ -56,7 +56,7 @@ packages:
name: async
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.5.0"
version: "2.7.0"
audio_session:
dependency: transitive
description:
@ -182,7 +182,7 @@ packages:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
version: "1.3.1"
checked_yaml:
dependency: transitive
description:
@ -829,7 +829,7 @@ packages:
name: meta
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.0"
version: "1.4.0"
mime:
dependency: transitive
description:
@ -1216,7 +1216,7 @@ packages:
name: source_span
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0"
version: "1.8.1"
sp_util:
dependency: transitive
description:
@ -1304,7 +1304,7 @@ packages:
name: test_api
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.19"
version: "0.4.1"
timeline_tile:
dependency: "direct main"
description:

@ -17,14 +17,14 @@ class Config {
///Apksigner
static String get apksignerPath =>
'$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';

@ -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<String> getVersion() async {
String projectPath = Directory('.').absolute.path;

Loading…
Cancel
Save