diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm index 272ddec44fe88..64c80557c5b1a 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm @@ -173,6 +173,12 @@ settings.trace_systrace = enableTraceSystrace.boolValue; } + NSNumber* enableDartProfiling = [mainBundle objectForInfoDictionaryKey:@"FLTEnableDartProfiling"]; + // Change the default only if the option is present. + if (enableDartProfiling != nil) { + settings.enable_dart_profiling = enableDartProfiling.boolValue; + } + // Leak Dart VM settings, set whether leave or clean up the VM after the last shell shuts down. NSNumber* leakDartVM = [mainBundle objectForInfoDictionaryKey:@"FLTLeakDartVM"]; // It will change the default leak_vm value in settings only if the key exists. diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm index 33e7e2a973f6c..3eb89543995fb 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm @@ -80,6 +80,15 @@ - (void)testEnableTraceSystraceSettingIsCorrectlyParsed { XCTAssertEqual(settings.trace_systrace, NO); } +- (void)testEnableDartProflingSettingIsCorrectlyParsed { + NSBundle* mainBundle = [NSBundle mainBundle]; + NSNumber* enableTraceSystrace = [mainBundle objectForInfoDictionaryKey:@"FLTEnableDartProfiling"]; + XCTAssertNotNil(enableTraceSystrace); + XCTAssertEqual(enableTraceSystrace.boolValue, NO); + auto settings = FLTDefaultSettingsForBundle(); + XCTAssertEqual(settings.trace_systrace, NO); +} + - (void)testEmptySettingsAreCorrect { XCTAssertFalse([FlutterDartProject allowsArbitraryLoads:[[NSDictionary alloc] init]]); XCTAssertEqualObjects(@"", [FlutterDartProject domainNetworkPolicy:[[NSDictionary alloc] init]]); diff --git a/testing/ios/IosUnitTests/App/Info.plist b/testing/ios/IosUnitTests/App/Info.plist index 252bc671749da..885a3b1804edf 100644 --- a/testing/ios/IosUnitTests/App/Info.plist +++ b/testing/ios/IosUnitTests/App/Info.plist @@ -50,6 +50,8 @@ FLTTraceSystrace + FLTEnableDartProfiling + UIRequiredDeviceCapabilities armv7