Skip to content
This repository has been archived by the owner on Feb 25, 2025. It is now read-only.

macOS: Bundle dSYM packages in FlutterMacOS.xcframework #54696

Merged
merged 3 commits into from
Aug 22, 2024

Conversation

cbracken
Copy link
Member

As of Xcode 16, App Store validation requires dSYMs for frameworks in app archives. Bundling dSYMs also significantly simplifies stack trace symbolification, so we should be doing this regardless.

This adds both framework and simulator framework dSYMs to the FlutterMacOS.xcframework bundle.

Issue: flutter/flutter#153879

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 and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

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

@cbracken cbracken added the test: all See https://github.com/flutter/engine/blob/main/docs/ci/Engine-pre-submits-and-post-submits.md label Aug 22, 2024
@cbracken cbracken force-pushed the embed-macos-dsym branch 2 times, most recently from aa11d3c to da4d6cb Compare August 22, 2024 00:23
@cbracken cbracken requested review from zanderso and jmagman August 22, 2024 00:24
@cbracken
Copy link
Member Author

Once presubmits have completed, I'll send out a test roll to the framework.

As of Xcode 16, App Store validation requires dSYMs for frameworks in app archives. Bundling dSYMs also significantly simplifies stack trace symbolification, so we should be doing this regardless.

This adds both framework and simulator framework dSYMs to the FlutterMacOS.xcframework bundle.

Issue: flutter/flutter#153879
@cbracken
Copy link
Member Author

Framework test roll out in flutter/flutter#153898.

@cbracken
Copy link
Member Author

Test roll succeeded: flutter/flutter#153898. I'll add the comments and push an update here.

@cbracken cbracken added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 22, 2024
@auto-submit auto-submit bot merged commit cf4507a into flutter:main Aug 22, 2024
35 checks passed
@cbracken cbracken deleted the embed-macos-dsym branch August 22, 2024 16:43
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 22, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 22, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 22, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 23, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Aug 23, 2024
…153994)

flutter/engine@67a7fe1...e4fac78

2024-08-23 [email protected] Revert "Framework wide color" (flutter/engine#54728)
2024-08-23 [email protected] Roll Skia from 7ac776072577 to 7d96b8516e8d (3 revisions) (flutter/engine#54731)
2024-08-23 [email protected] Roll Skia from 789f5cb0b9c2 to 7ac776072577 (1 revision) (flutter/engine#54729)
2024-08-23 [email protected] Roll Skia from b25553b2fb9f to 789f5cb0b9c2 (1 revision) (flutter/engine#54726)
2024-08-23 [email protected] Roll Dart SDK from ca009736fb3e to f9e6abb21ac7 (1 revision) (flutter/engine#54725)
2024-08-23 [email protected] [Impeller] Reland 3: Implement draw order optimization. (flutter/engine#54673)
2024-08-23 [email protected] Roll Fuchsia Test Scripts from 2fOjXGNxdSoRSGCL7... to 2TaLkdJNlAIbDYccn... (flutter/engine#54721)
2024-08-23 [email protected] Roll Fuchsia GN SDK from sbh76PYVTMxav4ACT... to OKGFjciA5Vd0TQks4... (flutter/engine#54722)
2024-08-22 [email protected] Test running the macOS engine has no stray logging (flutter/engine#54716)
2024-08-22 [email protected] Roll Dart SDK from 937389f7bc48 to ca009736fb3e (1 revision) (flutter/engine#54719)
2024-08-22 [email protected] More diagnostic clean ups (flutter/engine#54265)
2024-08-22 [email protected] Framework wide color (flutter/engine#54415)
2024-08-22 [email protected] Roll Skia from 10e9072dcea0 to b25553b2fb9f (2 revisions) (flutter/engine#54717)
2024-08-22 [email protected] Roll Dart SDK from ce160bf13347 to 937389f7bc48 (1 revision) (flutter/engine#54715)
2024-08-22 [email protected] [web:semantics] fix double click due to long-press (flutter/engine#54697)
2024-08-22 [email protected] Roll Skia from 04ce2e2bfc35 to 10e9072dcea0 (1 revision) (flutter/engine#54713)
2024-08-22 [email protected] Pin mac host and iOS builds to arm64 builders (flutter/engine#54711)
2024-08-22 [email protected] macOS: Bundle dSYM packages in FlutterMacOS.xcframework (flutter/engine#54696)
2024-08-22 [email protected] Roll Skia from 7611984dc27b to 04ce2e2bfc35 (2 revisions) (flutter/engine#54712)
2024-08-22 [email protected] vulkan_glfw validation layer logging (flutter/engine#54607)
2024-08-22 [email protected] Roll Skia from 4c66b7e42027 to 7611984dc27b (1 revision) (flutter/engine#54710)
2024-08-22 [email protected] Roll Dart SDK from 025bf8d376d3 to ce160bf13347 (1 revision) (flutter/engine#54709)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
cbracken added a commit to cbracken/flutter that referenced this pull request Aug 23, 2024
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 FlutterMacOS.xcframework shipped in the `darwin-x64-release` tools archive as of engine patches:
* flutter/engine#54696

This copies the FlutterMacOS.framework.dSYM bundle from the tools cache to the build outputs produced by `flutter build macos`.

Issue: https://github.com/flutter/flutter/issue/153879
cbracken added a commit to cbracken/flutter that referenced this pull request Aug 23, 2024
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 FlutterMacOS.xcframework shipped in the `darwin-x64-release` tools archive as of engine patches:
* flutter/engine#54696

This copies the FlutterMacOS.framework.dSYM bundle from the tools cache to the build outputs produced by `flutter build macos`.

Issue: https://github.com/flutter/flutter/issue/153879
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Aug 23, 2024
In flutter/engine#54696, we started bundling `FlutterMacOS.framework.dSYM` within `FlutterMacOS.xcframework` in the framework artifacts cache. This updates the list of expected codesigned binaries to include this file.

Issue: #153879
cbracken added a commit to cbracken/flutter that referenced this pull request Aug 23, 2024
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 FlutterMacOS.xcframework shipped in the `darwin-x64-release` tools archive as of engine patches:
* flutter/engine#54696

This copies the FlutterMacOS.framework.dSYM bundle from the tools cache to the build outputs produced by `flutter build macos`.

Issue: https://github.com/flutter/flutter/issue/153879
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Aug 24, 2024
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 FlutterMacOS.xcframework shipped in the `darwin-x64-release` tools archive as of engine patches:
* flutter/engine#54696

This copies the FlutterMacOS.framework.dSYM bundle from the tools cache to the build outputs produced by `flutter build macOS`.

Fixes: #153879
cbracken added a commit to cbracken/flutter_engine that referenced this pull request Aug 26, 2024
As of the following patches, we now bundle FlutterMacOS.framework.dSYM as part of FlutterMacOS.xcframework. The dSYM is automatically copied into the release build products directory, and bundled in the .xcarchive produced by Xcode's *Product > Archive* feature which produces bundles for upload to the App Store.

* flutter#54696
* flutter/flutter#153975

The .dSYM bundle is now available both in the uploaded .xcarchive and in the xcframework in Flutter's internal artifact cache. For developers with CI toolchains that do additional manual handling or local archiving of .dSYMs, the dSYMs no longer need to be downloaded from cloud storage as previously detailed in `docs/Crashes.md`, but can instead be copied up from the appropriate dSYM subdirectory in the framework cache:

* `flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework`

Also adds documentation for crash symbolication on macOS.

Issue: flutter/flutter#153879
auto-submit bot pushed a commit that referenced this pull request Aug 26, 2024
As of the following patches, we now bundle FlutterMacOS.framework.dSYM as part of FlutterMacOS.xcframework. The dSYM is automatically copied into the release build products directory, and bundled in the .xcarchive produced by Xcode's *Product > Archive* feature which produces bundles for upload to the App Store.

* #54696
* flutter/flutter#153975

The .dSYM bundle is now available both in the uploaded .xcarchive and in the xcframework in Flutter's internal artifact cache. For developers with CI toolchains that do additional manual handling or local archiving of .dSYMs, the dSYMs no longer need to be downloaded from cloud storage as previously detailed in `docs/Crashes.md`, but can instead be copied up from the appropriate dSYM subdirectory in the framework cache:

* `flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework`

Also adds documentation for crash symbolication on macOS.

Issue: flutter/flutter#153879

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
Buchimi pushed a commit to Buchimi/flutter that referenced this pull request Sep 2, 2024
…lutter#153994)

flutter/engine@67a7fe1...e4fac78

2024-08-23 [email protected] Revert "Framework wide color" (flutter/engine#54728)
2024-08-23 [email protected] Roll Skia from 7ac776072577 to 7d96b8516e8d (3 revisions) (flutter/engine#54731)
2024-08-23 [email protected] Roll Skia from 789f5cb0b9c2 to 7ac776072577 (1 revision) (flutter/engine#54729)
2024-08-23 [email protected] Roll Skia from b25553b2fb9f to 789f5cb0b9c2 (1 revision) (flutter/engine#54726)
2024-08-23 [email protected] Roll Dart SDK from ca009736fb3e to f9e6abb21ac7 (1 revision) (flutter/engine#54725)
2024-08-23 [email protected] [Impeller] Reland 3: Implement draw order optimization. (flutter/engine#54673)
2024-08-23 [email protected] Roll Fuchsia Test Scripts from 2fOjXGNxdSoRSGCL7... to 2TaLkdJNlAIbDYccn... (flutter/engine#54721)
2024-08-23 [email protected] Roll Fuchsia GN SDK from sbh76PYVTMxav4ACT... to OKGFjciA5Vd0TQks4... (flutter/engine#54722)
2024-08-22 [email protected] Test running the macOS engine has no stray logging (flutter/engine#54716)
2024-08-22 [email protected] Roll Dart SDK from 937389f7bc48 to ca009736fb3e (1 revision) (flutter/engine#54719)
2024-08-22 [email protected] More diagnostic clean ups (flutter/engine#54265)
2024-08-22 [email protected] Framework wide color (flutter/engine#54415)
2024-08-22 [email protected] Roll Skia from 10e9072dcea0 to b25553b2fb9f (2 revisions) (flutter/engine#54717)
2024-08-22 [email protected] Roll Dart SDK from ce160bf13347 to 937389f7bc48 (1 revision) (flutter/engine#54715)
2024-08-22 [email protected] [web:semantics] fix double click due to long-press (flutter/engine#54697)
2024-08-22 [email protected] Roll Skia from 04ce2e2bfc35 to 10e9072dcea0 (1 revision) (flutter/engine#54713)
2024-08-22 [email protected] Pin mac host and iOS builds to arm64 builders (flutter/engine#54711)
2024-08-22 [email protected] macOS: Bundle dSYM packages in FlutterMacOS.xcframework (flutter/engine#54696)
2024-08-22 [email protected] Roll Skia from 7611984dc27b to 04ce2e2bfc35 (2 revisions) (flutter/engine#54712)
2024-08-22 [email protected] vulkan_glfw validation layer logging (flutter/engine#54607)
2024-08-22 [email protected] Roll Skia from 4c66b7e42027 to 7611984dc27b (1 revision) (flutter/engine#54710)
2024-08-22 [email protected] Roll Dart SDK from 025bf8d376d3 to ce160bf13347 (1 revision) (flutter/engine#54709)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Buchimi pushed a commit to Buchimi/flutter that referenced this pull request Sep 2, 2024
In flutter/engine#54696, we started bundling `FlutterMacOS.framework.dSYM` within `FlutterMacOS.xcframework` in the framework artifacts cache. This updates the list of expected codesigned binaries to include this file.

Issue: flutter#153879
Buchimi pushed a commit to Buchimi/flutter that referenced this pull request Sep 2, 2024
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 FlutterMacOS.xcframework shipped in the `darwin-x64-release` tools archive as of engine patches:
* flutter/engine#54696

This copies the FlutterMacOS.framework.dSYM bundle from the tools cache to the build outputs produced by `flutter build macOS`.

Fixes: flutter#153879
cbracken added a commit to cbracken/flutter that referenced this pull request Sep 3, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571
cbracken added a commit to cbracken/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571
cbracken added a commit to cbracken/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571
cbracken added a commit to cbracken/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571
cbracken added a commit to cbracken/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: #154571
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Sep 4, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: #154571

This is a cherry-pick of #154591 to the flutter-3.24-candidate.0 branch.
cbracken added a commit to cbracken/flutter_cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
cbracken added a commit to cbracken/flutter_cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
cbracken added a commit to cbracken/flutter_cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
cbracken added a commit to cbracken/flutter_cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
cbracken added a commit to cbracken/flutter_cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
auto-submit bot pushed a commit to flutter/cocoon that referenced this pull request Sep 5, 2024
This updates the code-signing workflow to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is). This skips code-signing for files found in `unsigned_binaries.txt`, which will be added in a followup patch to the framework artifact archive creation scripts in engine:
* `sky/tools/create_ios_framework.py`
* `sky/tools/create_macos_framework.py`

Issue: flutter/flutter#154571
Gustl22 pushed a commit to Gustl22/flutter that referenced this pull request Nov 13, 2024
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In flutter/engine#54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in flutter/engine#54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: flutter#154571

This is a cherry-pick of flutter#154591 to the flutter-3.24-candidate.0 branch.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App test: all See https://github.com/flutter/engine/blob/main/docs/ci/Engine-pre-submits-and-post-submits.md
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants