Skip to content

Conversation

@vashworth
Copy link
Contributor

@vashworth vashworth commented Oct 20, 2023

Some users have their Xcode settings set to not debug (see example here #136197 (comment)). This will cause the engine check for a debugger to fail, which will cause an error and cause the app to crash.

This PR parses the scheme file to ensure the scheme is set to start a debugger and warn the user if it's not.

Fixes #136197.

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.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels. labels Oct 20, 2023
/// reported them not being so after upgrading to Xcode 15.
void ensureXcodeDebuggerLaunchAction(File schemeFile) {
if (!schemeFile.existsSync()) {
_logger.printError('Failed to find ${schemeFile.path}');
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've purposely set this error and some of the ones below to be non-breaking and just print out the error. It only throws if it successfully finds the scheme file and parse it and finds the settings are incorrect.

Reason for this is I plan to CP this into stable and although I'm pretty confident that none of these should error, there may be cases I'm unaware of. And by default, most projects should have these settings be correct. I don't want to prevent a valid project from running.

Let me know if you think I'm being too cautious 😅

Copy link
Contributor

Choose a reason for hiding this comment

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

do you plan to mark it a failure AFTER the CP? or would you like it to be printError indefinitely?

Copy link
Contributor

Choose a reason for hiding this comment

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

in terms of cherry-picking, I would say this is an appropriate level of caution :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So I was originally thinking that after I CP'd it, I could change it to throw. But it might be better to just leave it on print indefinitely. If the checks do fail and they have the incorrect settings, it'll still crash later on with the engine error

);
}

/// Ensure the Xcode project is set up to launch an LLDB debugger. If these
Copy link
Contributor

Choose a reason for hiding this comment

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

does this check only need to be done when we're initiating debugging via the Xcode GUI?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes. Also, only need to be done for BuildableIOSApp (so not prebuilt) since prebuilt uses a Xcode project we generate on the fly.

@vashworth vashworth requested a review from eliasyishak October 24, 2023 15:56
@vashworth
Copy link
Contributor Author

@eliasyishak since @christopherfujino is OOO, could you review?

Copy link
Contributor

@eliasyishak eliasyishak left a comment

Choose a reason for hiding this comment

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

LGTM!

@vashworth vashworth added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 25, 2023
@auto-submit auto-submit bot merged commit 5dd2a4e into flutter:master Oct 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 25, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Oct 25, 2023
Roll Flutter from 5e8b5f4 to 5dd2a4e (59 revisions)

flutter/flutter@5e8b5f4...5dd2a4e

2023-10-25 [email protected] Ensure Xcode project is setup to start debugger (flutter/flutter#136977)
2023-10-25 [email protected] Marks Windows build_tests_6_6 to be unflaky (flutter/flutter#137216)
2023-10-25 [email protected] Remove gem and docker files. (flutter/flutter#137200)
2023-10-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[gallery] Reland roll gallery to  ecfb9e5352bd12032301b12b30d5853d83d89bda" (flutter/flutter#137264)
2023-10-25 [email protected] [gallery] Reland roll gallery to  ecfb9e5352bd12032301b12b30d5853d83d89bda (flutter/flutter#137199)
2023-10-25 [email protected] Roll Packages from 2faf992 to f751ffb (11 revisions) (flutter/flutter#137254)
2023-10-25 [email protected] Marks Windows build_tests_3_6 to be unflaky (flutter/flutter#137214)
2023-10-25 [email protected] Marks Windows build_tests_5_6 to be unflaky (flutter/flutter#137215)
2023-10-25 [email protected] Marks Windows build_tests_2_6 to be unflaky (flutter/flutter#137213)
2023-10-25 [email protected] Revert "Update `OutlinedButton` tests for Material 3 (#136809)" (flutter/flutter#137242)
2023-10-25 [email protected] Update `OutlinedButton` tests for Material 3 (flutter/flutter#136809)
2023-10-25 [email protected] Let `OverflowBox` be shrink-wrappable (flutter/flutter#129095)
2023-10-25 [email protected] Add dependency on leak_tracker to flutter_test. (flutter/flutter#137069)
2023-10-25 [email protected] fix SliverReorderableLists item wrong offset (flutter/flutter#136828)
2023-10-25 [email protected] Remove `bringup: true` from realm_checker and remove the redundant tool test. (flutter/flutter#137186)
2023-10-25 [email protected] Revert "Fix Gradle lockfiles." (flutter/flutter#137198)
2023-10-24 [email protected] Fix Gradle lockfiles. (flutter/flutter#137190)
2023-10-24 [email protected] Fix Typos (flutter/flutter#137173)
2023-10-24 [email protected] Roll Flutter Engine from d6a48e9963df to 6e09ee14e244 (1 revision) (flutter/flutter#137185)
2023-10-24 [email protected] Roll Flutter Engine from 602b5131ee4d to d6a48e9963df (6 revisions) (flutter/flutter#137180)
2023-10-24 [email protected] TextField - allow to customize cursor color in error state (flutter/flutter#136121)
2023-10-24 [email protected] [macOS] Refactor macOS build/codesize analysis (flutter/flutter#137164)
2023-10-24 [email protected] Roll Flutter Engine from dc00de7dacf4 to 602b5131ee4d (1 revision) (flutter/flutter#137174)
2023-10-24 [email protected] Check the realm file in its own shard. (flutter/flutter#137160)
2023-10-24 [email protected] Roll Flutter Engine from 1890bd7dc412 to dc00de7dacf4 (1 revision) (flutter/flutter#137172)
2023-10-24 [email protected] Roll Flutter Engine from ca7ef01c99c6 to 1890bd7dc412 (2 revisions) (flutter/flutter#137158)
2023-10-24 [email protected] Migrate mac builds to ruby dep. (flutter/flutter#136929)
2023-10-24 [email protected] Roll Packages from 4bf5114 to 2faf992 (7 revisions) (flutter/flutter#137154)
2023-10-24 [email protected] Roll Flutter Engine from 7224835bb65f to ca7ef01c99c6 (1 revision) (flutter/flutter#137153)
2023-10-24 [email protected] fix some typos (flutter/flutter#137144)
2023-10-24 [email protected] Roll Flutter Engine from 8f7488e0b4b5 to 7224835bb65f (1 revision) (flutter/flutter#137150)
2023-10-24 [email protected] Roll Flutter Engine from d58895093d0a to 8f7488e0b4b5 (3 revisions) (flutter/flutter#137135)
2023-10-24 [email protected] Roll Flutter Engine from 2a8471f188cd to d58895093d0a (4 revisions) (flutter/flutter#137130)
2023-10-24 [email protected] Roll Flutter Engine from 71600d89aa3f to 2a8471f188cd (2 revisions) (flutter/flutter#137129)
2023-10-24 [email protected] Roll Flutter Engine from 3dd197dcf9e5 to 71600d89aa3f (1 revision) (flutter/flutter#137127)
2023-10-24 [email protected] Roll Flutter Engine from bdbd1058858b to 3dd197dcf9e5 (2 revisions) (flutter/flutter#137125)
2023-10-24 [email protected] Roll Flutter Engine from 0ef5caa91c40 to bdbd1058858b (1 revision) (flutter/flutter#137119)
2023-10-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Use `coverage.collect`'s `coverableLineCache` param to speed up coverage" (flutter/flutter#137121)
2023-10-24 [email protected] Roll Flutter Engine from dd6a6531e816 to 0ef5caa91c40 (1 revision) (flutter/flutter#137114)
2023-10-24 [email protected] Roll Flutter Engine from 0bd703132cc1 to dd6a6531e816 (2 revisions) (flutter/flutter#137111)
2023-10-23 [email protected] Roll Flutter Engine from abeab897a29c to 0bd703132cc1 (3 revisions) (flutter/flutter#137107)
2023-10-23 [email protected] Upgrade packages in flutter and flutter_test. (flutter/flutter#137106)
2023-10-23 49699333+dependabot[bot]@users.noreply.github.com Bump ossf/scorecard-action from 2.2.0 to 2.3.1 (flutter/flutter#137103)
2023-10-23 [email protected] Dartdoc warnings (flutter/flutter#137077)
2023-10-23 [email protected] Roll Flutter Engine from e89f0421bcab to abeab897a29c (5 revisions) (flutter/flutter#137100)
2023-10-23 [email protected] Cover last test/material tests with leak tracking. (flutter/flutter#137004)
...
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

3 participants