From efd2ba296b3abe171abc4bf412d75fa601d3aaaf Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Thu, 26 Sep 2019 15:57:57 -0700 Subject: [PATCH] Flutter build bundle without --precompiled should always perform a debug build. (#41401) --- packages/flutter_tools/lib/src/bundle.dart | 4 ++++ packages/flutter_tools/lib/src/commands/build_bundle.dart | 5 ++++- .../flutter_tools/test/general.shard/bundle_shim_test.dart | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/bundle.dart b/packages/flutter_tools/lib/src/bundle.dart index 5130420a7ab..6c3b6c92fc7 100644 --- a/packages/flutter_tools/lib/src/bundle.dart +++ b/packages/flutter_tools/lib/src/bundle.dart @@ -89,6 +89,7 @@ class BundleBuilder { flutterProject: flutterProject, outputDir: assetDirPath, depfilePath: depfilePath, + precompiled: precompiledSnapshot, ); return; } @@ -150,7 +151,10 @@ Future buildWithAssemble({ @required String mainPath, @required String outputDir, @required String depfilePath, + @required bool precompiled, }) async { + // If the precompiled flag was not passed, force us into debug mode. + buildMode = precompiled ? buildMode : BuildMode.debug; final Environment environment = Environment( projectDir: flutterProject.directory, outputDir: fs.directory(outputDir), diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index e06df7ce899..1225b75ddb2 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -21,7 +21,10 @@ class BuildBundleCommand extends BuildSubCommand { usesBuildNumberOption(); addBuildModeFlags(verboseHelp: verboseHelp); argParser - ..addFlag('precompiled', negatable: false) + ..addFlag('precompiled', negatable: false, help: 'If not provided, then ' + 'a debug build is always provided, regardless of build mode. If provided ' + 'then release is the default mode.' + ) // This option is still referenced by the iOS build scripts. We should // remove it once we've updated those build scripts. ..addOption('asset-base', help: 'Ignored. Will be removed.', hide: !verboseHelp) diff --git a/packages/flutter_tools/test/general.shard/bundle_shim_test.dart b/packages/flutter_tools/test/general.shard/bundle_shim_test.dart index 86bbc4df5f9..be36d519ebe 100644 --- a/packages/flutter_tools/test/general.shard/bundle_shim_test.dart +++ b/packages/flutter_tools/test/general.shard/bundle_shim_test.dart @@ -39,6 +39,7 @@ void main() { outputDir: 'example', targetPlatform: TargetPlatform.ios, depfilePath: 'example.d', + precompiled: false, ); expect(fs.file(fs.path.join('example', 'kernel_blob.bin')).existsSync(), true); expect(fs.file(fs.path.join('example', 'LICENSE')).existsSync(), true); @@ -60,6 +61,7 @@ void main() { outputDir: 'example', targetPlatform: TargetPlatform.linux_x64, depfilePath: 'example.d', + precompiled: false, ), throwsA(isInstanceOf())); })); }