Force plugin transitive dependencies to an ARC compatible version#124349
Force plugin transitive dependencies to an ARC compatible version#124349auto-submit[bot] merged 2 commits intoflutter:masterfrom
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.
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.
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.
what if it has dependencies that have dependencies on FlutterMacOS?
There was a problem hiding this comment.
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.
Ahh, makes sense!
…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.