Skip to content

Commit

Permalink
iOS,docs: Update iOS symbolication docs (flutter#54494)
Browse files Browse the repository at this point in the history
As of flutter/flutter#153215, end user app archives now include symbols for the Flutter framework by default. So manual symbolication is no longer required.

For engine developers and others who still need to deal with manual symbols, they can now be found in the Flutter tool cache and can thus be obtained from there if required.

Issue: flutter/flutter#116493

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
  • Loading branch information
cbracken authored Aug 10, 2024
1 parent 4878a32 commit d409dcd
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions docs/Crashes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
## Symbolicating stack traces for engine crashes

The easiest way to symbolicate stack traces for Android and iOS is running the [dart_ci symbolizer locally](https://github.com/dart-lang/dart_ci/blob/main/github-label-notifier/symbolizer/README.md#using-this-locally). If that is not an option, the steps below explain how to do it manually.
iOS app archives produced using Flutter 3.24 or later embed engine debugging symbols and thus crashes are symbolicated by default.

The easiest way to symbolicate stack traces for Android and older iOS apps is to run the [dart_ci symbolizer locally](https://github.com/dart-lang/dart_ci/blob/main/github-label-notifier/symbolizer/README.md#using-this-locally). If that is not an option, the steps below explain how to do it manually.

### Android

Expand Down Expand Up @@ -88,7 +90,25 @@ adb logcat | ~/dev/engine/src/third_party/android_tools/ndk/prebuilt/linux-x86_6

### iOS

The dSYM file for `Flutter.framework` (which is the Flutter Engine) for ios-release builds can be downloaded from Google Cloud Storage. Follow the steps from the Android section in this guide, but in the last step use a download url following this schema: `https://storage.cloud.google.com/flutter_infra_release/flutter/38a646e14cc25f5a56a989c6a5787bf74e0ea386/ios-release/Flutter.dSYM.zip` (replace the engine hash with your hash).
Since Flutter 3.24, symbols can be found in the Flutter framework's artifact
cache, within the xcframework bundle at
`bin/cache/artifacts/engine/ios-release/Flutter.xcframework`.

* Symbols for device builds are in the `ios-arm64/dSYMs/Flutter.framework.dSYM` bundle.
* Symbols for simulator builds are in the `ios-arm64_x86_64-simulator/dSYMs/Flutter.framework.dSYM` bundle.

For versions prior to Flutter 3.24, the dSYM bundle can downloaded from Google
Cloud Storage. Follow the steps from the Android section in this guide, but in
the last step use a download url following this schema:
`https://storage.cloud.google.com/flutter_infra_release/flutter/38a646e14cc25f5a56a989c6a5787bf74e0ea386/ios-release/Flutter.dSYM.zip`
(replace the engine hash with your hash).

For release since Flutter 3.24, these symbols are no longer uploaded as a
separate archive and should be obtained from the artifact cache as described
above. The artifact cache can be downloaded direcly using a URL following this
schema:
`https://storage.googleapis.com/flutter_infra_release/flutter/c11fe483947c95553610ab59210af643f031f5f4/ios-release/artifacts.zip`
(replace the engine hash with your hash).

#### Symbolicating local builds

Expand Down

0 comments on commit d409dcd

Please sign in to comment.