From 212d7d8209fb924e528d425016bd7183fd0a71f6 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 13 Mar 2025 20:57:59 +0000 Subject: [PATCH] [native assets] Add the native asset manifest to the bundle dependencies in non-debug modes (#165023) Fixes https://github.com/flutter/flutter/issues/164149 --- .../lib/src/build_system/targets/common.dart | 2 +- .../general.shard/bundle_builder_test.dart | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index b1f60007c2..735c380b10 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -123,7 +123,7 @@ class ReleaseCopyFlutterBundle extends CopyFlutterBundle { List get depfiles => const ['flutter_assets.d']; @override - List get dependencies => const []; + List get dependencies => const [InstallCodeAssets()]; } /// Generate a snapshot of the dart code used in the program. diff --git a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart index 0fd39734db..9f7d2a71e5 100644 --- a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart @@ -266,6 +266,35 @@ void main() { 'build/95b595cca01caa5f0ca0a690339dd7f6.cache.dill.track.dill', ); }); + + testUsingContext( + 'Release bundle includes native assets', + () async { + final List dependencies = []; + final BuildSystem buildSystem = TestBuildSystem.all(BuildResult(success: true), ( + Target target, + Environment environment, + ) { + for (final Target dep in target.dependencies) { + dependencies.add(dep.name); + } + }); + await BundleBuilder().build( + platform: TargetPlatform.ios, + buildInfo: BuildInfo.release, + project: FlutterProject.fromDirectoryTest(globals.fs.currentDirectory), + mainPath: globals.fs.path.join('lib', 'main.dart'), + assetDirPath: 'example', + depfilePath: 'example.d', + buildSystem: buildSystem, + ); + expect(dependencies, contains('install_code_assets')); + }, + overrides: { + FileSystem: () => MemoryFileSystem.test(), + ProcessManager: () => FakeProcessManager.any(), + }, + ); } class FakeAssetBundle extends Fake implements AssetBundle {