[CP-stable][iOS] Copy Flutter.framework.dSYM into app archive #153322
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Link:
What is the link to the issue this cherry-pick is addressing?
#116493
Dependent on engine-side CP flutter/engine#54513
Changelog Description:
Flutter now bundles iOS framework debugging symbols in app archives built with
flutter build ipaor Xcode's Product > Archive command. This eliminates the need for manual download/bundling of Flutter debug symbols for release build crash log symbolication, and as of Xcode 16, these symbols are now required for app archives to pass App Store validation.Impact Description:
Without these bundled symbols, iOS App Store validation fails for Flutter apps under Xcode 16, making it impossible for developers to publish to the iOS App Store.
Workaround:
Use Xcode 15.
Risk:
What is the risk level of this cherry-pick?
The change itself is quite simple and in the case where we can't find a bundled Flutter.framework.dSYM inside the flutter tool's artifact cache, we simply fall back to the previous behaviour of not copying it.
In the case where the Flutter.framework.dSYM is found in the artifact cache (which is the expected case), we simply perform a copy using
rsyncas we do with Flutter.framework itself. This is also relatively low-risk.Further, this change has been verified by @cbracken using Flutter's own organisation on the App Store, and by a non-Google developer.
However, I'm flagging as medium-risk since this change has only had two days of bake time for us to collect feedback, and while I expect there's a very low likelihood of an issue, we haven't yet got sufficient feedback to say definitively that we haven't missed any edge-cases.
Test Coverage:
Are you confident that your fix is well-tested by automated tests?
Validation Steps:
What are the steps to validate that this fix works?
The developer performing these steps will need to have App Manager permissions for their development team in App Store Connect.
xcode-select -s /Applications/Xcode-beta.appflutter create clickcounterios/Runner.xcworkspacein Xcode beta 16.