-
Notifications
You must be signed in to change notification settings - Fork 29.3k
New tooling for iOS 17 physical devices #131865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@hellohuanlin Did you upgrade a physical device to iOS 17? Could be good to have the workflows tested on another real device other than just mine. |
@christopherfujino @hellohuanlin There is JavaScript in this PR, if neither of you are comfortable reviewing JS, do you know someone who would be? Perhaps someone on the web team? |
Woohoo, nice! I'll try to test this out with my mac. |
@christopherfujino That'd be great! If you don't want to upgrade a device to iOS 17, you can test at least the Xcode workflows using an environment variable to force it.
The |
This is fine (I'd much rather review JS than applescript :) ) |
I tried |
|
So this I believe is user error. I got the same thing, but I also got the same thing with Xcode 14 and iOS 16. I think perhaps our developer account don't have the proper permissions -- unsure. Anyways, I think it's a non issue. I tested it by doing |
Yeah |
This PR includes the following changes. These changes only apply to iOS 17 physical devices. | Command | Change Description | Changes to User Experience | | ------------- | ------------- | ------------- | | `flutter run --release` | Uses `devicectl` to install and launch application in release mode. | No change. | | `flutter run` | Uses Xcode via automation scripting to run application in debug and profile mode. | Xcode will be opened in the background. Errors/crashes may be caught in Xcode and therefore may not show in terminal. | | `flutter run --use-application-binary=xxxx` | Creates temporary empty Xcode project and use Xcode to run via automation scripting in debug and profile. | Xcode will be opened in the background. Errors/crashes may be caught in Xcode and therefore may not show in terminal. | | `flutter install` | Uses `devicectl` to check installed apps, install app, uninstall app. | No change. | | `flutter screenshot` | Will return error. | Will return error. | Other changes include: * Using `devicectl` to get information about the device * Using `idevicesyslog` and Dart VM logging for device logs Note: Xcode automation scripting (used in `flutter run` for debug and profile) does not work in a headless (without a UI) interface. No known workaround. Fixes flutter#128827, flutter#128531.
Fixes a couple of issues introduced in new iOS 17 physical device tooling: #131865. 1) Duplicate messages were being filtered out too aggressively. For example, if on the counter app, you printed "Increment!" on button click, it would only print once no matter how many times you clicked. Sometimes more than one log source is used at a time and the original intention was to filter duplicates between two log sources, so it wouldn't print the same message from both logs. However, it would also filter when the same message was added more than once via the same log. The new solution distinguishes a "primary" and a "fallback" log source and prefers to use the primary source unless it's not working, in which it'll use the fallback. If the fallback is faster than the primary, the primary will exclude the logs received by the fallback in a 1-to-1 fashion to prevent too-aggressive filtering. Once a flutter-message has been received by the primary source, fallback messages will be ignored. Note: iOS < 17 did not regress. 2) There was a race condition between the shutdown hooks and exiting XcodeDebug that was causing a crash when deleting a file that doesn't exist. This only affects CI - for the new integration tests and when testing with iOS 17 physical devices.
…32491) Fixes a couple of issues introduced in new iOS 17 physical device tooling: flutter#131865. 1) Duplicate messages were being filtered out too aggressively. For example, if on the counter app, you printed "Increment!" on button click, it would only print once no matter how many times you clicked. Sometimes more than one log source is used at a time and the original intention was to filter duplicates between two log sources, so it wouldn't print the same message from both logs. However, it would also filter when the same message was added more than once via the same log. The new solution distinguishes a "primary" and a "fallback" log source and prefers to use the primary source unless it's not working, in which it'll use the fallback. If the fallback is faster than the primary, the primary will exclude the logs received by the fallback in a 1-to-1 fashion to prevent too-aggressive filtering. Once a flutter-message has been received by the primary source, fallback messages will be ignored. Note: iOS < 17 did not regress. 2) There was a race condition between the shutdown hooks and exiting XcodeDebug that was causing a crash when deleting a file that doesn't exist. This only affects CI - for the new integration tests and when testing with iOS 17 physical devices.
…32491) Fixes a couple of issues introduced in new iOS 17 physical device tooling: flutter#131865. 1) Duplicate messages were being filtered out too aggressively. For example, if on the counter app, you printed "Increment!" on button click, it would only print once no matter how many times you clicked. Sometimes more than one log source is used at a time and the original intention was to filter duplicates between two log sources, so it wouldn't print the same message from both logs. However, it would also filter when the same message was added more than once via the same log. The new solution distinguishes a "primary" and a "fallback" log source and prefers to use the primary source unless it's not working, in which it'll use the fallback. If the fallback is faster than the primary, the primary will exclude the logs received by the fallback in a 1-to-1 fashion to prevent too-aggressive filtering. Once a flutter-message has been received by the primary source, fallback messages will be ignored. Note: iOS < 17 did not regress. 2) There was a race condition between the shutdown hooks and exiting XcodeDebug that was causing a crash when deleting a file that doesn't exist. This only affects CI - for the new integration tests and when testing with iOS 17 physical devices.
…32491) Fixes a couple of issues introduced in new iOS 17 physical device tooling: flutter#131865. 1) Duplicate messages were being filtered out too aggressively. For example, if on the counter app, you printed "Increment!" on button click, it would only print once no matter how many times you clicked. Sometimes more than one log source is used at a time and the original intention was to filter duplicates between two log sources, so it wouldn't print the same message from both logs. However, it would also filter when the same message was added more than once via the same log. The new solution distinguishes a "primary" and a "fallback" log source and prefers to use the primary source unless it's not working, in which it'll use the fallback. If the fallback is faster than the primary, the primary will exclude the logs received by the fallback in a 1-to-1 fashion to prevent too-aggressive filtering. Once a flutter-message has been received by the primary source, fallback messages will be ignored. Note: iOS < 17 did not regress. 2) There was a race condition between the shutdown hooks and exiting XcodeDebug that was causing a crash when deleting a file that doesn't exist. This only affects CI - for the new integration tests and when testing with iOS 17 physical devices.
Two CP commits in a single PR. Original PRs: flutter#131865 flutter#132491
This PR includes the following changes. These changes only apply to iOS 17 physical devices.
flutter run --release
devicectl
to install and launch application in release mode.flutter run
flutter run --use-application-binary=xxxx
flutter install
devicectl
to check installed apps, install app, uninstall app.flutter screenshot
Other changes include:
devicectl
to get information about the deviceidevicesyslog
and Dart VM logging for device logsNote:
Xcode automation scripting (used in
flutter run
for debug and profile) does not work in a headless (without a UI) interface. No known workaround.Fixes #128827, #128531.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.