Skip to content

Show warning when attempting to flutter run on an ios device with developer mode turned off - #125710

Merged
auto-submit[bot] merged 25 commits into
flutter:masterfrom
LouiseHsu:show-warning-when-dev-mode-off
May 22, 2023
Merged

auto-submit[bot] merged 25 commits into
flutter:masterfrom
LouiseHsu:show-warning-when-dev-mode-off

Conversation

@LouiseHsu

@LouiseHsu LouiseHsu commented Apr 28, 2023 •

Copy link
Copy Markdown
Contributor

This PR adds a warning when a user attempt to flutter run -d <device id> on a device without developer mode enabled.
Screenshot 2023-05-09 at 3 53 18 AM

Also handles multiple partial matches.
Screenshot 2023-05-09 at 3 52 24 AM

Fixes #111988

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • All existing and new tests are passing.

@flutter-dashboard flutter-dashboard Bot added platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels. labels Apr 28, 2023
environment: iosDeployEnv,
);
// Device does not have developer mode enabled.
if (result.stdout.trim().split('\n')[2] == 'Developer mode is not enabled.') {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that Im splitting the stdout because this flag returns the same exitCode regardless if it succeeds or fails

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if it outputs something unexpected? For example, let's say it can't find ios_deploy. The output may not have a length of 3. I would at least check it's length first, but may be better to loop it

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be extremely brittle to Apple changing this output (also you would use LineSplitter).

Instead --json and parse the IsEnabled output, see my example in #111988 (comment)

This also needs to handle devices running lower than iOS 16 that don't know anything about developer mode so there's nothing to turn on. See the output in the same comment.

@vashworth vashworth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So seems like using ios-deploy for this may cause some slow downs since it waits for the device to connect. I think it would be worth investigating if using the error output from xcdevice list as @jmagman mentioned here is actually not being found or just not being surfaced. I suspect it's just not being surfaced.
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/macos/xcdevice.dart#L512

environment: iosDeployEnv,
);
// Device does not have developer mode enabled.
if (result.stdout.trim().split('\n')[2] == 'Developer mode is not enabled.') {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if it outputs something unexpected? For example, let's say it can't find ios_deploy. The output may not have a length of 3. I would at least check it's length first, but may be better to loop it

'--id',
deviceId,
'--check-developer-mode'
];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to me that this command waits for the device to connect and if it doesn't find the device it waits forever (or at least a long time). Does that also happen for you? Seems like it at least needs a timeout.

expect(isEnabled, isFalse);
expect(processManager, hasNoRemainingExpectations);
});
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a test when the output is something unexpected

_logReaders[app] = logReader;
}

@visibleForTesting

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you use isDeveloperModeEnabled is other places, you'll need to remove @visibleForTesting to make it public. @visibleForTesting basically makes it private but visible to test

jmagman
jmagman previously requested changes May 1, 2023
environment: iosDeployEnv,
);
// Device does not have developer mode enabled.
if (result.stdout.trim().split('\n')[2] == 'Developer mode is not enabled.') {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be extremely brittle to Apple changing this output (also you would use LineSplitter).

Instead --json and parse the IsEnabled output, see my example in #111988 (comment)

This also needs to handle devices running lower than iOS 16 that don't know anything about developer mode so there's nothing to turn on. See the output in the same comment.

deviceId: id
);
if (!enabled) {
_logger.printError('To use $name for development, enable Developer Mode in Settings → Privacy & Security.');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This error output is an unexpected side-effect of essentially a getter, what if the caller doesn't think it's an error, it just wants to check to handle something differently based on what mode it's in? Instead, print errors/call toolExits in the caller where it actually knows that this is a Bad Thing.

if (matchedDevice is IOSDevice) {
final bool devModeEnabled = await matchedDevice.isDeveloperModeEnabled();
if (!devModeEnabled) {
throwToolExit('');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tool exit is another case of an unexpected side-effect of checking for findAllTargetDevices. What if the caller doesn't care if the dev mode is enabled and instead just wants a list of good, ready devices? Or it wants to fall back to macOS/web if there are no ready iOS devices?

Instead you should toolExit in the spot where the command knows enough to understand this is a problem and can't continue.

@jmagman
jmagman requested a review from christopherfujino May 1, 2023 20:46
@jmagman
jmagman dismissed their stale review May 2, 2023 19:53

Passing off to vashworth and christopherfujino

@hellohuanlin

Copy link
Copy Markdown
Contributor

I saw several update notifications in my email. Is this PR ready for review?

@LouiseHsu

Copy link
Copy Markdown
Contributor Author

I saw several update notifications in my email. Is this PR ready for review?

Yep!

@hellohuanlin hellohuanlin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall makes sense. left a few questions

"Unable to locate a development device; please run 'flutter doctor' "
'for information about installing additional components.';
String flutterSpecifiedDeviceDevModeDisabled(String deviceName) => 'To use '
"'$deviceName' for development, enable Developer Mode in Settings → Privacy & Security. ";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: remove trailing space

required this.connectionInterface,
required this.isConnected,
String? sdkVersion,
this.devModeEnabled = true,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we want to default to true, rather than passing the value from caller?

Not sure about dart's convention, im curious does dart requires you to put params with default values at the end of list?


Future<List<Device>?> _handleDisabledIosDevice(Device device) async {
// Get connected devices from cache, including unsupported ones.
final List<Device> unsupportedDevices = await _deviceManager.getAllDevices(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this all devices or just unsupported devices?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks unused, can be removed.

_logger.printStatus('The following devices were found:');
await Device.printDevices(unsupportedDevices, _logger);
}
return null;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is it returning null?

}

if (devices.length > 1) {
final List<Device> disabledDevices = [];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can use where() function to filter

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the idea is - for each device, if is indeed a disabled ios device, print the message that says "To use '
"'$deviceName' for development, enable Developer Mode in Settings → Privacy & Security."
If, additionally, this is the last device to be checked, and all previous devices have also been disabled, then we print out all other available devices.
So I don't think I can actually use where() to filter it since I want to print something out each iteration

@vashworth vashworth May 15, 2023 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From failing Linux analyze test:

info • Missing type annotation • packages/flutter_tools/lib/src/runner/target_devices.dart:531:46 • always_specify_types

final List<Device> disabledDevices = <Device>[];

for (final Device device in devices) {
if (device is IOSDevice && !device.devModeEnabled) {
disabledDevices.add(device);
if (disabledDevices.length == devices.length) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it only called at the last loop? can it be moved outside the loop?

return null;
}

Future<List<Device>?> _handleDisabledIosDevice(Device device) async {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: devModeDisabledIosDevice

// available devices
return _handleDisabledIosDevice(device);
}
// otherwise, just show the error and move on

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm a bit confused - this says otherwise but the code below is not in an else block.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is cuz the if block above it returns, so it's basically an else block

@vashworth

Copy link
Copy Markdown
Contributor

Oh btw, you can test if your code passes the analyzer locally by running bin/flutter analyze --flutter-repo

@hellohuanlin

Copy link
Copy Markdown
Contributor

saw a few updates in my email. let me know when it's ready for another review.

final Platform _platform;
final IMobileDevice _iMobileDevice;
final IProxy _iproxy;
final bool _devModeEnabled;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there's no need for this private variable. It does not appear to be used anywhere. I would remove it and in the constructor args use required this.devModeEnabled

const String _noWirelessDevicesFoundMessage = 'No wireless devices were found.';
const String _wirelesslyConnectedDevicesMessage = 'Wirelessly connected devices:';
String flutterSpecifiedDeviceDevModeDisabled(String deviceName) => 'To use '
"'$deviceName' for development, enable Developer Mode in Settings → Privacy & Security.";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: The const strings and the function string messages are separated and in alphabetical order here. Could be nice to have it fit in with that

supportFilter: _defaultSupportFilter(includeDevicesUnsupportedByProject),
);

attachedDevices = await _removeDevDisabledIOSDevices(attachedDevices, printWarning: false);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checking the attached devices is unnecessary. The device list returned by _getDeviceById above returns all devices, regardless of the connection type. _getAttachedDevices only returns devices that are connected and a device with the dev mode error will not be considered connected so would not appear in this list

if (code != -10) {
isConnected = false;
}
if (code == 6) {
devModeEnabled = false;
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, if I remove this line I definitely get dev mode disabled devices in the attachedDevices, which is why I added it in the first place.

@vashworth vashworth May 19, 2023 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I just tried it and devices with dev mode off don't appear in attachedDevices for me. When it doubt, unit test it


specifiedDevices = await _removeDevDisabledIOSDevices(specifiedDevices);

if (specifiedDevices.length == 1) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe let's simplify and just say

if (specifiedDevices.length == 1) {
  Device? matchedDevice = specifiedDevices.first;
  // If the only matching device does not have Developer Mode enabled, 
  // print a warning 
  if (matchedDevice is IOSDevice && !matchedDevice.devModeEnabled) {
    _logger.printError(
      flutterSpecifiedDeviceDevModeDisabled(device.name)
    );
    return null;
  }
  ....
} else {
  for (final device in specifiedDevices) {
    // Print warning for every matching device that does not have Developer Mode enabled.
    if (matchedDevice is IOSDevice && !matchedDevice.devModeEnabled) {
      _logger.printStatus(
        flutterSpecifiedDeviceDevModeDisabled(device.name)
      );
    }
  }
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i feel like its better to remove the devices first because if you have 3 matching devices, with two disabled devices, by removing them first you can still return the only one, instead of erroring.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not expect it to error in that case


Future<List<Device>?> _handleDisabledIosDevice(Device device) async {
// Get connected devices from cache, including unsupported ones.
final List<Device> unsupportedDevices = await _deviceManager.getAllDevices(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks unused, can be removed.

@vashworth vashworth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@LouiseHsu LouiseHsu added the autosubmit Merge PR when tree becomes green via auto submit App label May 22, 2023
@auto-submit
auto-submit Bot merged commit e345a83 into flutter:master May 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 23, 2023
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request May 23, 2023
flutter/flutter@3437189...f86c529

2023-05-23 [email protected] Roll Flutter Engine from 431ed51c6415 to 168b0bf3f70d (1 revision) (flutter/flutter#127382)
2023-05-23 [email protected] Roll Flutter Engine from cc79ae858591 to 431ed51c6415 (1 revision) (flutter/flutter#127381)
2023-05-23 [email protected] Roll Flutter Engine from 311438399a45 to cc79ae858591 (1 revision) (flutter/flutter#127377)
2023-05-23 [email protected] Roll Flutter Engine from c284cd10e7ab to 311438399a45 (1 revision) (flutter/flutter#127376)
2023-05-23 [email protected] Roll Flutter Engine from 8d6602b030be to c284cd10e7ab (2 revisions) (flutter/flutter#127372)
2023-05-23 [email protected] Add M3 date picker tests and fix divider (flutter/flutter#127197)
2023-05-23 [email protected] Roll Flutter Engine from 2586cbeeae37 to 8d6602b030be (2 revisions) (flutter/flutter#127370)
2023-05-23 [email protected] Manual roll Flutter Engine from a342a9186e69 to 2586cbeeae37 (14 revisions) (flutter/flutter#127369)
2023-05-23 [email protected] [Android] Adds `namespace` to module build file templates (flutter/flutter#126963)
2023-05-23 [email protected] Revert Engine to a342a9186e69 (flutter/flutter#127368)
2023-05-23 [email protected] Roll Flutter Engine from 2a325eed77d0 to 41e8d52a006a (2 revisions) (flutter/flutter#127365)
2023-05-23 [email protected] Roll Flutter Engine from a342a9186e69 to 2a325eed77d0 (7 revisions) (flutter/flutter#127364)
2023-05-23 [email protected] Remove null-safety argument from DartPad doc samples (flutter/flutter#127345)
2023-05-22 [email protected] Support keeping a bottom sheet with a DraggableScrollableSheet from closing on drag/fling to min extent (flutter/flutter#127339)
2023-05-22 [email protected] Fix wasm-opt location when using local_web_sdk (flutter/flutter#127355)
2023-05-22 [email protected] Roll Flutter Engine from 1ed9fc0caf55 to a342a9186e69 (3 revisions) (flutter/flutter#127352)
2023-05-22 [email protected] Show warning when attempting to flutter run on an ios device with developer mode turned off (flutter/flutter#125710)
2023-05-22 [email protected] Suggest that people move to "beta" when they upgrade on "master" (flutter/flutter#127146)
2023-05-22 [email protected] add test for setting JAVA_HOME and PATH when invoking `sdkmanager --licenses` (flutter/flutter#127344)
2023-05-22 [email protected] Roll Flutter Engine from e04c14786d5a to 1ed9fc0caf55 (1 revision) (flutter/flutter#127343)
2023-05-22 [email protected] fix: Search anchor box location when used on nested navigator (flutter/flutter#127198)
2023-05-22 [email protected] [flutter_tools] delete entitlements files after copying to macos build dir (flutter/flutter#126875)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
CaseyHillers pushed a commit to CaseyHillers/flutter that referenced this pull request May 24, 2023
…eloper mode turned off (flutter#125710)

This PR adds a warning when a user attempt to `flutter run -d <device id>` on a device without developer mode enabled.
<img width="738" alt="Screenshot 2023-05-09 at 3 53 18 AM" src="https://github.com/flutter/flutter/assets/36148254/6f473a6a-5a0d-438b-9e6f-06d09eb1f3a9">

Also handles multiple partial matches.
<img width="788" alt="Screenshot 2023-05-09 at 3 52 24 AM" src="https://github.com/flutter/flutter/assets/36148254/60c82b3c-d501-4a01-95ad-d6309fe39576">

Fixes flutter#111988
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
flutter/flutter@3437189...f86c529

2023-05-23 [email protected] Roll Flutter Engine from 431ed51c6415 to 168b0bf3f70d (1 revision) (flutter/flutter#127382)
2023-05-23 [email protected] Roll Flutter Engine from cc79ae858591 to 431ed51c6415 (1 revision) (flutter/flutter#127381)
2023-05-23 [email protected] Roll Flutter Engine from 311438399a45 to cc79ae858591 (1 revision) (flutter/flutter#127377)
2023-05-23 [email protected] Roll Flutter Engine from c284cd10e7ab to 311438399a45 (1 revision) (flutter/flutter#127376)
2023-05-23 [email protected] Roll Flutter Engine from 8d6602b030be to c284cd10e7ab (2 revisions) (flutter/flutter#127372)
2023-05-23 [email protected] Add M3 date picker tests and fix divider (flutter/flutter#127197)
2023-05-23 [email protected] Roll Flutter Engine from 2586cbeeae37 to 8d6602b030be (2 revisions) (flutter/flutter#127370)
2023-05-23 [email protected] Manual roll Flutter Engine from a342a9186e69 to 2586cbeeae37 (14 revisions) (flutter/flutter#127369)
2023-05-23 [email protected] [Android] Adds `namespace` to module build file templates (flutter/flutter#126963)
2023-05-23 [email protected] Revert Engine to a342a9186e69 (flutter/flutter#127368)
2023-05-23 [email protected] Roll Flutter Engine from 2a325eed77d0 to 41e8d52a006a (2 revisions) (flutter/flutter#127365)
2023-05-23 [email protected] Roll Flutter Engine from a342a9186e69 to 2a325eed77d0 (7 revisions) (flutter/flutter#127364)
2023-05-23 [email protected] Remove null-safety argument from DartPad doc samples (flutter/flutter#127345)
2023-05-22 [email protected] Support keeping a bottom sheet with a DraggableScrollableSheet from closing on drag/fling to min extent (flutter/flutter#127339)
2023-05-22 [email protected] Fix wasm-opt location when using local_web_sdk (flutter/flutter#127355)
2023-05-22 [email protected] Roll Flutter Engine from 1ed9fc0caf55 to a342a9186e69 (3 revisions) (flutter/flutter#127352)
2023-05-22 [email protected] Show warning when attempting to flutter run on an ios device with developer mode turned off (flutter/flutter#125710)
2023-05-22 [email protected] Suggest that people move to "beta" when they upgrade on "master" (flutter/flutter#127146)
2023-05-22 [email protected] add test for setting JAVA_HOME and PATH when invoking `sdkmanager --licenses` (flutter/flutter#127344)
2023-05-22 [email protected] Roll Flutter Engine from e04c14786d5a to 1ed9fc0caf55 (1 revision) (flutter/flutter#127343)
2023-05-22 [email protected] fix: Search anchor box location when used on nested navigator (flutter/flutter#127198)
2023-05-22 [email protected] [flutter_tools] delete entitlements files after copying to macos build dir (flutter/flutter#126875)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
bisor0627 pushed a commit to bisor0627/packages that referenced this pull request Jun 19, 2026
flutter/flutter@3437189...f86c529

2023-05-23 [email protected] Roll Flutter Engine from 431ed51c6415 to 168b0bf3f70d (1 revision) (flutter/flutter#127382)
2023-05-23 [email protected] Roll Flutter Engine from cc79ae858591 to 431ed51c6415 (1 revision) (flutter/flutter#127381)
2023-05-23 [email protected] Roll Flutter Engine from 311438399a45 to cc79ae858591 (1 revision) (flutter/flutter#127377)
2023-05-23 [email protected] Roll Flutter Engine from c284cd10e7ab to 311438399a45 (1 revision) (flutter/flutter#127376)
2023-05-23 [email protected] Roll Flutter Engine from 8d6602b030be to c284cd10e7ab (2 revisions) (flutter/flutter#127372)
2023-05-23 [email protected] Add M3 date picker tests and fix divider (flutter/flutter#127197)
2023-05-23 [email protected] Roll Flutter Engine from 2586cbeeae37 to 8d6602b030be (2 revisions) (flutter/flutter#127370)
2023-05-23 [email protected] Manual roll Flutter Engine from a342a9186e69 to 2586cbeeae37 (14 revisions) (flutter/flutter#127369)
2023-05-23 [email protected] [Android] Adds `namespace` to module build file templates (flutter/flutter#126963)
2023-05-23 [email protected] Revert Engine to a342a9186e69 (flutter/flutter#127368)
2023-05-23 [email protected] Roll Flutter Engine from 2a325eed77d0 to 41e8d52a006a (2 revisions) (flutter/flutter#127365)
2023-05-23 [email protected] Roll Flutter Engine from a342a9186e69 to 2a325eed77d0 (7 revisions) (flutter/flutter#127364)
2023-05-23 [email protected] Remove null-safety argument from DartPad doc samples (flutter/flutter#127345)
2023-05-22 [email protected] Support keeping a bottom sheet with a DraggableScrollableSheet from closing on drag/fling to min extent (flutter/flutter#127339)
2023-05-22 [email protected] Fix wasm-opt location when using local_web_sdk (flutter/flutter#127355)
2023-05-22 [email protected] Roll Flutter Engine from 1ed9fc0caf55 to a342a9186e69 (3 revisions) (flutter/flutter#127352)
2023-05-22 [email protected] Show warning when attempting to flutter run on an ios device with developer mode turned off (flutter/flutter#125710)
2023-05-22 [email protected] Suggest that people move to "beta" when they upgrade on "master" (flutter/flutter#127146)
2023-05-22 [email protected] add test for setting JAVA_HOME and PATH when invoking `sdkmanager --licenses` (flutter/flutter#127344)
2023-05-22 [email protected] Roll Flutter Engine from e04c14786d5a to 1ed9fc0caf55 (1 revision) (flutter/flutter#127343)
2023-05-22 [email protected] fix: Search anchor box location when used on nested navigator (flutter/flutter#127198)
2023-05-22 [email protected] [flutter_tools] delete entitlements files after copying to macos build dir (flutter/flutter#126875)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show warning and give instructions when iOS 16+ Developer Mode is off

4 participants