Skip to content

Conversation

@flutteractionsbot
Copy link

@flutteractionsbot flutteractionsbot commented Aug 12, 2024

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 ipa or 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?

  • Low
  • Medium
  • High

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 rsync as 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?

  • Yes
  • No

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.

  1. Install Xcode 16 beta.
  2. Make Xcode 16 beta the default on your machine: xcode-select -s /Applications/Xcode-beta.app
  3. Create the default clickcounter app: flutter create clickcounter
  4. Open ios/Runner.xcworkspace in Xcode beta 16.
  5. In the project explorer sidebar, select the Runner app, then select the Signing & Capabilities tab.
  6. Set the bundle identifier to the bundle identifier of your app as configured in App Store Connect.
  7. From the team dropdown, select a team for which you have developer permissions.
  8. From the menu bar, select Product > Archive. This will open the Organizer window. You can open it again later from the Window menu or via Command-Option-Shift-O.
  9. Select the archive, then click Validate App.

As of Xcode 16, App Store validation now requires that apps uploaded to the App store bundle dSYM debug information bundles for each Framework they embed.

dSYM bundles are packaged in the Flutter.xcframework shipped in the `ios-release` tools archive as of engine patches:
* flutter/engine#54414
* flutter/engine#54458

This copies the Flutter.framework.dSYM bundle from the tools cache to the app archive produced by `flutter build ipa`.

Issue: flutter#116493
@flutteractionsbot flutteractionsbot added the cp: review Cherry-picks in the review queue label Aug 12, 2024
@flutteractionsbot
Copy link
Author

@jmagman please fill out the PR description above, afterwards the release team will review this request.

@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Aug 12, 2024
@cbracken
Copy link
Member

I have updated the description field.

@itsjustkevin itsjustkevin self-requested a review August 13, 2024 18:13
@itsjustkevin itsjustkevin added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 13, 2024
@auto-submit auto-submit bot merged commit 613e43c into flutter:flutter-3.24-candidate.0 Aug 13, 2024
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 cp: review Cherry-picks in the review queue tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants