diff --git a/README.en.md b/README.en.md index 8ccedf5ceaf043b377174bb407fa61c4f9b545c3..687aa87471e8691127d892d8954e81128976bdfb 100644 --- a/README.en.md +++ b/README.en.md @@ -232,4 +232,10 @@ After the configuration is completed, the flutter sdk can complete the device co sudo update-alternatives --config java ``` -6. If you are using the Beta version of DevEco Studio and encounter the error "must have required property 'compatibleSdkVersion', location: demo/ohos/build-profile.json5:17:11" when compiling the project, please refer to "DevEco Studio" Modify the hvigor/hvigor-config.json5 file in the '6 Creating Projects and Running Hello World' [Configuration Plug-in] chapter in "Environment Configuration Guide.docx". \ No newline at end of file +6. If you are using the Beta version of DevEco Studio and encounter the error "must have required property 'compatibleSdkVersion', location: demo/ohos/build-profile.json5:17:11" when compiling the project, please refer to "DevEco Studio" Modify the hvigor/hvigor-config.json5 file in the '6 Creating Projects and Running Hello World' [Configuration Plug-in] chapter in "Environment Configuration Guide.docx". + +7. If an installation error is prompted: `fail to verify pkcs7 file`, please execute + + ``` + hdc shell param set persist.bms.ohCert.verify true + ``` \ No newline at end of file diff --git a/README.md b/README.md index e08a5c0f820db6366375aecd14d1d9fe2bd94e1b..dbcf4ef8a949b5f3c6bd0b726facfa388d6ec68b 100644 --- a/README.md +++ b/README.md @@ -234,4 +234,10 @@ HDC_SERVER_PORT=8710 sudo update-alternatives --config java ``` -6. 如果你使用的是DevEco Studio的Beta版本,编译工程时遇到“must have required property 'compatibleSdkVersion', location: demo/ohos/build-profile.json5:17:11"错误,请参考《DevEco Studio环境配置指导.docx》中的‘6 创建工程和运行Hello World’【配置插件】章节修改 hvigor/hvigor-config.json5文件。 \ No newline at end of file +6. 如果你使用的是DevEco Studio的Beta版本,编译工程时遇到“must have required property 'compatibleSdkVersion', location: demo/ohos/build-profile.json5:17:11"错误,请参考《DevEco Studio环境配置指导.docx》中的‘6 创建工程和运行Hello World’【配置插件】章节修改 hvigor/hvigor-config.json5文件。 + +7. 若提示安装报错:`fail to verify pkcs7 file` 请执行指令 + + ``` + hdc shell param set persist.bms.ohCert.verify true + ``` \ No newline at end of file diff --git a/packages/flutter_tools/lib/executable.dart b/packages/flutter_tools/lib/executable.dart index c08284750a404a37de8f7f8a089b848f56354241..f0167da95e9c3210fa508519ee53adb6ce8129c9 100644 --- a/packages/flutter_tools/lib/executable.dart +++ b/packages/flutter_tools/lib/executable.dart @@ -176,17 +176,16 @@ List generateCommands({ ChannelCommand(verboseHelp: verboseHelp), CleanCommand(verbose: verbose), ConfigCommand(verboseHelp: verboseHelp), - // CustomDevicesCommand( - // customDevicesConfig: globals.customDevicesConfig, - // operatingSystemUtils: globals.os, - // terminal: globals.terminal, - // platform: globals.platform, - // featureFlags: featureFlags, - // processManager: globals.processManager, - // fileSystem: globals.fs, - // logger: globals.logger - // ), - CustomDevicesNotSupportCommand(), + CustomDevicesCommand( + customDevicesConfig: globals.customDevicesConfig, + operatingSystemUtils: globals.os, + terminal: globals.terminal, + platform: globals.platform, + featureFlags: featureFlags, + processManager: globals.processManager, + fileSystem: globals.fs, + logger: globals.logger + ), CreateCommand(verboseHelp: verboseHelp), DaemonCommand(hidden: !verboseHelp), DebugAdapterCommand(verboseHelp: verboseHelp), diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart index b2bac51b509cbfebb4af22f065d47a0232dadea0..0631b428fa32c82de8df5969053ffeb1087234bf 100644 --- a/packages/flutter_tools/lib/src/commands/analyze.dart +++ b/packages/flutter_tools/lib/src/commands/analyze.dart @@ -144,7 +144,6 @@ class AnalyzeCommand extends FlutterCommand { @override Future runCommand() async { - throwToolExit('It will be supported later.', exitCode: 1); final bool? suggestionFlag = boolArg('suggestions'); final bool machineFlag = boolArg('machine') ?? false; if (suggestionFlag != null && suggestionFlag == true) { diff --git a/packages/flutter_tools/lib/src/commands/build_hap.dart b/packages/flutter_tools/lib/src/commands/build_hap.dart index 61112158d559ee0d69e9a98dc94fd1ebb2b885a7..ef7f2867487838abb0e1f045840f1e73123ce41b 100644 --- a/packages/flutter_tools/lib/src/commands/build_hap.dart +++ b/packages/flutter_tools/lib/src/commands/build_hap.dart @@ -24,6 +24,9 @@ class BuildHapCommand extends BuildSubCommand { BuildHapCommand({required super.logger, bool verboseHelp = false}) : super(verboseHelp: verboseHelp) { const String defaultTargetPlatform = 'ohos-arm64'; + addDartObfuscationOption(); + addSplitDebugInfoOption(); + usesExtraDartFlagOptions(verboseHelp: verboseHelp); argParser.addOption( 'target-platform', defaultsTo: defaultTargetPlatform, diff --git a/packages/flutter_tools/lib/src/commands/emulators.dart b/packages/flutter_tools/lib/src/commands/emulators.dart index 05cad877a5c373396dc2c056b2ed0bab9e695c57..79b34bebfad26bd1a712401b216e71a64507668c 100644 --- a/packages/flutter_tools/lib/src/commands/emulators.dart +++ b/packages/flutter_tools/lib/src/commands/emulators.dart @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:io'; + import 'package:args/args.dart'; import '../base/common.dart'; @@ -11,6 +13,8 @@ import '../emulator.dart'; import '../globals.dart' as globals; import '../runner/flutter_command.dart'; +const String kOhosSdkEmulatorPath = 'OHOS_EMULATOR_HOME'; + class EmulatorsCommand extends FlutterCommand { EmulatorsCommand() { argParser.addOption('launch', @@ -23,6 +27,10 @@ class EmulatorsCommand extends FlutterCommand { negatable: false); argParser.addOption('name', help: 'Used with the "--create" flag. Specifies a name for the emulator being created.'); + if (globals.platform.isWindows) { + argParser.addFlag('launch-ohos-emulator', + help: 'Launch boot the emulator instance (Ohos only).'); + } } @override @@ -39,7 +47,6 @@ class EmulatorsCommand extends FlutterCommand { @override Future runCommand() async { - throwToolExit('It will be supported later.', exitCode: 1); if (globals.doctor!.workflows.every((Workflow w) => !w.canListEmulators)) { throwToolExit( 'Unable to find any emulator sources. Please ensure you have some\n' @@ -52,6 +59,8 @@ class EmulatorsCommand extends FlutterCommand { await _launchEmulator(stringArgDeprecated('launch')!, coldBoot: coldBoot); } else if (argumentResults.wasParsed('create')) { await _createEmulator(name: stringArgDeprecated('name')); + } else if (argumentResults.wasParsed('launch-ohos-emulator')) { + _launchOhosEmulator(); } else { final String? searchText = argumentResults.rest != null && argumentResults.rest.isNotEmpty @@ -79,6 +88,34 @@ class EmulatorsCommand extends FlutterCommand { } } + void _launchOhosEmulator() { + if (!globals.platform.isWindows) { + return; + } + String? emulatorDirectory = globals.platform.environment[kOhosSdkEmulatorPath]; + + if (emulatorDirectory == null) { + globals.printStatus("Please set OHOS_EMULATOR_HOME.\n"); + return; + } + + final Directory emulatorPath = Directory(emulatorDirectory); + if (!emulatorPath.existsSync()) { + globals.printStatus("ohos emulator cannot found.\n"); + return; + } + final List cmd = []; + cmd.add(globals.fs.path.join(emulatorDirectory, 'emulator', 'Emulator.exe')); + cmd.add('-hvd'); + cmd.add('x86'); + cmd.add('-path'); + cmd.add(globals.fs.path.join(emulatorDirectory, 'hvd')); + + globals.processManager.start(cmd, workingDirectory: emulatorDirectory); + return; + } + + Future _createEmulator({ String? name }) async { final CreateEmulatorResult createResult = await emulatorManager!.createEmulator(name: name); diff --git a/packages/flutter_tools/lib/src/commands/generate_localizations.dart b/packages/flutter_tools/lib/src/commands/generate_localizations.dart index cfbc575b3f9b0ac9258a15cbba6b299c36f1ac46..f693930a7d9d7948132a65a4ac65e8f65d3e7a9d 100644 --- a/packages/flutter_tools/lib/src/commands/generate_localizations.dart +++ b/packages/flutter_tools/lib/src/commands/generate_localizations.dart @@ -223,7 +223,6 @@ class GenerateLocalizationsCommand extends FlutterCommand { @override Future runCommand() async { - throwToolExit('It will be supported later.'); List outputFileList; bool format = boolArg('format') ?? false; diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index 39d5232b5c27c6a266d092915b1bd49c56f4c5f9..35e664c9b699cde154690678f0298e3926e9d246 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart @@ -131,7 +131,6 @@ class PrecacheCommand extends FlutterCommand { @override Future runCommand() async { - throwToolExit('It will be supported later.', exitCode: 1); // Re-lock the cache. if (_platform.environment['FLUTTER_ALREADY_LOCKED'] != 'true') { await _cache.lock(); diff --git a/packages/flutter_tools/lib/src/commands/shell_completion.dart b/packages/flutter_tools/lib/src/commands/shell_completion.dart index 178a15298ec261aca999c2fc88ff40325d010b50..eb487b42a6771d9b7a1ff9347f2cab8cee45b64a 100644 --- a/packages/flutter_tools/lib/src/commands/shell_completion.dart +++ b/packages/flutter_tools/lib/src/commands/shell_completion.dart @@ -42,7 +42,6 @@ class ShellCompletionCommand extends FlutterCommand { @override Future runCommand() async { - throwToolExit('It will be supported later.', exitCode: 1); final List rest = argResults?.rest ?? []; if (rest.length > 1) { throwToolExit('Too many arguments given to bash-completion command.', exitCode: 1); diff --git a/packages/flutter_tools/lib/src/commands/symbolize.dart b/packages/flutter_tools/lib/src/commands/symbolize.dart index 8c1ccf42d2fe5f7c57a0af185349b33da9f4ece1..d8393f15d96a8d1823a4ab8632abedf2d00b029b 100644 --- a/packages/flutter_tools/lib/src/commands/symbolize.dart +++ b/packages/flutter_tools/lib/src/commands/symbolize.dart @@ -65,7 +65,6 @@ class SymbolizeCommand extends FlutterCommand { @override Future validateCommand() { - throwToolExit('It will be supported later.', exitCode: 1); if (argResults?.wasParsed('debug-info') != true) { throwToolExit('"--debug-info" is required to symbolize stack traces.'); } diff --git a/packages/flutter_tools/lib/src/ohos/build_hap.dart b/packages/flutter_tools/lib/src/ohos/build_hap.dart index 63b60d81c6248beb3817edb33079697680270d15..9f7058d7c75ae9c1efd26fcaa8397cc9aa8477a3 100644 --- a/packages/flutter_tools/lib/src/ohos/build_hap.dart +++ b/packages/flutter_tools/lib/src/ohos/build_hap.dart @@ -390,21 +390,24 @@ Future signHap(LocalFileSystem localFileSystem, String unsignedFile, copyDirectory(resultBackup, result); } - final String signtool = - globals.fs.path.join(signToolHome, isWindows ? - 'create_appcert_sign_profile.bat' : 'create_appcert_sign_profile.sh'); - final List command = [signtool]; + final List cmdCreateCertAndProfile = []; + cmdCreateCertAndProfile.add('python3'); + cmdCreateCertAndProfile.add(globals.fs.path.join(signToolHome, 'autosign.py')); + cmdCreateCertAndProfile.add('createAppCertAndProfile'); + await invokeCmd( - command: command, + command: cmdCreateCertAndProfile, workDirectory: signToolHome, processManager: globals.processManager, logger: logger); - final String signtool2 = globals.fs.path.join(signToolHome, isWindows ? - 'sign_hap.bat' : 'sign_hap.sh'); - final List command2 = [signtool2]; + final List cmdSignHap = []; + cmdSignHap.add('python3'); + cmdSignHap.add(globals.fs.path.join(signToolHome, 'autosign.py')); + cmdSignHap.add('signHap'); + await invokeCmd( - command: command2, + command: cmdSignHap, workDirectory: signToolHome, processManager: globals.processManager, logger: logger); diff --git a/packages/flutter_tools/lib/src/ohos/ohos_workflow.dart b/packages/flutter_tools/lib/src/ohos/ohos_workflow.dart index 146c4d6518c47742134377ca3bdea7236ede9ef9..7a18d3360b20fd9f3712a5c80132fe76c758547b 100644 --- a/packages/flutter_tools/lib/src/ohos/ohos_workflow.dart +++ b/packages/flutter_tools/lib/src/ohos/ohos_workflow.dart @@ -42,7 +42,6 @@ class OhosWorkflow implements Workflow { appliesToHostPlatform && _ohosSdk != null && _ohosSdk?.hdcPath != null; @override - bool get canListEmulators => canListDevices - // && _ohosSdk?.emulatorPath != null - ; + bool get canListEmulators => canListDevices; + //&& _ohosSdk?.emulatorPath != null; } diff --git a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.debug.10 b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.debug.10 index 8ff0d04141a776e448478791df1e2a1c3aa7c5c4..23113a5d7423256b7e2e989b1a548dbc74b81b07 100644 Binary files a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.debug.10 and b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.debug.10 differ diff --git a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.release.10 b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.release.10 index 7cdf26180489e807496f02cd4736425b4ad42845..b42ea1e49d46bbf913b9ee6cbea8a7c624b0aabe 100644 Binary files a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.release.10 and b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/libflutter.so.release.10 differ