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