-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Force plugin transitive dependencies to an ARC compatible version #124349
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
| return unless target.dependencies.any? { |dependency| dependency.name == 'FlutterMacOS' } | ||
|
|
||
| # [target.deployment_target] is a [String] formatted as "10.8". | ||
| deployment_target_major, deployment_target_minor = target.deployment_target.match(/(\d+).?(\d*)/).captures |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unrelated, but we should escape the . here, right? we can do it later if you want to hotfix this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, human regex debugger. I'll do that in master though as you say since I do want to hotfix this.
| build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.11' if force_to_arc_supported_min | ||
|
|
||
| # Skip other updates if it's not a Flutter plugin (transitive dependency). | ||
| next unless target.dependencies.any? { |dependency| dependency.name == 'FlutterMacOS' } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what if it has dependencies that have dependencies on FlutterMacOS?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They would each be processed separately in this loop. The ones that depend on Flutter (Flutter plugins) will continue no matter if it's a dependency of something else or not, but the ones that don't (non-Flutter plugin transitive dependencies) won't.
Did I understand the question?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, makes sense!
christopherfujino
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm
vashworth
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…utter#124349) Force plugin transitive dependencies to an ARC compatible version
…utter#124349) Force plugin transitive dependencies to an ARC compatible version
…utter#124349) Force plugin transitive dependencies to an ARC compatible version
#126548) Cherry-pick #124349 onto stable (3.10). CP request at #126549 Co-authored-by: Jenn Magder <[email protected]>
Xcode 14.3 (released March 30, 2023) stopped building automatic reference counted (ARC) code targeting < iOS 9 or < macOS 10.11 by removing a
libarclite_*library from the toolchain that was needed to link for these older targets.Flutter was already forcing Flutter plugins to the same minimum version as the app, but wasn't doing so for the plugins's transitive dependencies. In particular, some Firebase plugins depend on pods targeting lower versions.
Force transitive dependencies to a minimum version of at least iOS 9 or macOS 10.11.
https://ci.chromium.org/p/flutter/builders/try/Mac%20plugin_test_ios/16683
https://ci.chromium.org/p/flutter/builders/try/Mac%20plugin_test_macos/3136
Fixes #124340
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.