-
-
Notifications
You must be signed in to change notification settings - Fork 356
feat: v7: Capture app start errors before JS #5470
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ructures (#4445) * Extract Android SDK Init * Update tests * Adds changelog * Fix lint issues * Rename RNSentryStart instance for clarity * Converts RNSentryStart to utility class * Update CHANGELOG.md --------- Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Convert json object to writable map * Make class/methods package-private(default)
- Resolved merge conflicts across iOS, Android, and JavaScript/TypeScript code - Updated iOS implementation to use RNSentryStart API - Fixed Android compilation errors for Sentry Android SDK v7 compatibility - Removed deprecated API calls (setEnableTracing, getPackages, getIntegrations) - Updated Gradle build scripts and resolved conflict markers - All builds verified: iOS, Android, and Expo sample apps compile successfully
Android (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 955f2eb+dirty | 422.74 ms | 410.19 ms | -12.55 ms |
| 8490686+dirty | 365.59 ms | 400.24 ms | 34.65 ms |
| c9e95bd | 428.04 ms | 458.70 ms | 30.65 ms |
| 6c11c6a+dirty | 581.59 ms | 575.86 ms | -5.73 ms |
| 01d24f6+dirty | 362.50 ms | 362.23 ms | -0.27 ms |
| 23080e5 | 384.85 ms | 382.57 ms | -2.28 ms |
| 5ee3314+dirty | 415.80 ms | 426.14 ms | 10.34 ms |
| ee69ed5+dirty | 409.44 ms | 441.30 ms | 31.86 ms |
| 1226664+dirty | 347.45 ms | 386.60 ms | 39.15 ms |
| 9b50d32+dirty | 455.51 ms | 466.56 ms | 11.05 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 955f2eb+dirty | 17.75 MiB | 19.70 MiB | 1.95 MiB |
| 8490686+dirty | 17.75 MiB | 19.70 MiB | 1.96 MiB |
| c9e95bd | 17.75 MiB | 19.68 MiB | 1.93 MiB |
| 6c11c6a+dirty | 43.75 MiB | 48.09 MiB | 4.33 MiB |
| 01d24f6+dirty | 17.75 MiB | 19.74 MiB | 2.00 MiB |
| 23080e5 | 17.75 MiB | 19.68 MiB | 1.94 MiB |
| 5ee3314+dirty | 17.75 MiB | 19.70 MiB | 1.95 MiB |
| ee69ed5+dirty | 43.75 MiB | 48.04 MiB | 4.29 MiB |
| 1226664+dirty | 17.75 MiB | 19.74 MiB | 1.99 MiB |
| 9b50d32+dirty | 43.75 MiB | 48.04 MiB | 4.29 MiB |
Previous results on branch: capture-app-start-errors-v7
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f26d7a8+dirty | 571.36 ms | 637.92 ms | 66.56 ms |
| 99179a4+dirty | 405.13 ms | 415.16 ms | 10.03 ms |
| 60d1e83+dirty | 396.72 ms | 390.04 ms | -6.68 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f26d7a8+dirty | 43.75 MiB | 48.08 MiB | 4.32 MiB |
| 99179a4+dirty | 43.75 MiB | 48.08 MiB | 4.32 MiB |
| 60d1e83+dirty | 43.75 MiB | 48.08 MiB | 4.32 MiB |
Android (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2b89ce9+dirty | 372.22 ms | 417.06 ms | 44.84 ms |
| 46da307+dirty | 356.62 ms | 415.02 ms | 58.40 ms |
| 9f211e3+dirty | 371.00 ms | 432.51 ms | 61.51 ms |
| 6c11c6a+dirty | 462.02 ms | 488.50 ms | 26.48 ms |
| 07808fb+dirty | 392.47 ms | 451.94 ms | 59.47 ms |
| f234eb4+dirty | 313.23 ms | 333.31 ms | 20.08 ms |
| d916aa3+dirty | 411.72 ms | 451.76 ms | 40.03 ms |
| ee69ed5+dirty | 411.19 ms | 447.04 ms | 35.85 ms |
| 6fee48d+dirty | 370.23 ms | 427.86 ms | 57.63 ms |
| 9b50d32+dirty | 429.59 ms | 423.89 ms | -5.70 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2b89ce9+dirty | 7.15 MiB | 8.41 MiB | 1.26 MiB |
| 46da307+dirty | 7.15 MiB | 8.41 MiB | 1.26 MiB |
| 9f211e3+dirty | 7.15 MiB | 8.41 MiB | 1.26 MiB |
| 6c11c6a+dirty | 43.94 MiB | 48.92 MiB | 4.98 MiB |
| 07808fb+dirty | 7.15 MiB | 8.43 MiB | 1.28 MiB |
| f234eb4+dirty | 7.15 MiB | 8.46 MiB | 1.30 MiB |
| d916aa3+dirty | 7.15 MiB | 8.42 MiB | 1.27 MiB |
| ee69ed5+dirty | 43.94 MiB | 48.87 MiB | 4.93 MiB |
| 6fee48d+dirty | 7.15 MiB | 8.41 MiB | 1.26 MiB |
| 9b50d32+dirty | 43.94 MiB | 48.87 MiB | 4.93 MiB |
Previous results on branch: capture-app-start-errors-v7
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f26d7a8+dirty | 380.15 ms | 407.84 ms | 27.68 ms |
| 99179a4+dirty | 357.38 ms | 375.64 ms | 18.26 ms |
| 60d1e83+dirty | 406.16 ms | 422.83 ms | 16.67 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f26d7a8+dirty | 43.94 MiB | 48.90 MiB | 4.96 MiB |
| 99179a4+dirty | 43.94 MiB | 48.90 MiB | 4.96 MiB |
| 60d1e83+dirty | 43.94 MiB | 48.90 MiB | 4.96 MiB |
The file is in the parent directory, so use ../ prefix to fix the import path
The property is deprecated in v7. Tracing is already disabled by setting tracesSampleRate and tracesSampler to nil.
iOS (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 4167e15+dirty | 1213.39 ms | 1222.50 ms | 9.11 ms |
| a31630c+dirty | 1229.09 ms | 1230.94 ms | 1.85 ms |
| 2b89ce9+dirty | 1229.30 ms | 1239.40 ms | 10.10 ms |
| c7f264b+dirty | 1211.82 ms | 1218.04 ms | 6.22 ms |
| 11ded16+dirty | 1230.71 ms | 1235.52 ms | 4.81 ms |
| 1d62dde+dirty | 1214.38 ms | 1223.36 ms | 8.98 ms |
| 55b77fc+dirty | 1223.71 ms | 1224.12 ms | 0.41 ms |
| 60cd796+dirty | 1204.87 ms | 1202.71 ms | -2.17 ms |
| 266bc7e+dirty | 1190.56 ms | 1191.47 ms | 0.91 ms |
| 128ee72+dirty | 1218.16 ms | 1219.18 ms | 1.03 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 4167e15+dirty | 2.63 MiB | 4.00 MiB | 1.37 MiB |
| a31630c+dirty | 2.63 MiB | 3.98 MiB | 1.34 MiB |
| 2b89ce9+dirty | 2.63 MiB | 3.91 MiB | 1.28 MiB |
| c7f264b+dirty | 2.63 MiB | 3.91 MiB | 1.28 MiB |
| 11ded16+dirty | 2.63 MiB | 4.01 MiB | 1.38 MiB |
| 1d62dde+dirty | 2.63 MiB | 4.01 MiB | 1.38 MiB |
| 55b77fc+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 60cd796+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| 266bc7e+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 128ee72+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
Previous results on branch: capture-app-start-errors-v7
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 60d1e83+dirty | 1207.79 ms | 1207.35 ms | -0.44 ms |
| 99179a4+dirty | 1213.96 ms | 1215.34 ms | 1.38 ms |
| f26d7a8+dirty | 1209.49 ms | 1207.54 ms | -1.95 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 60d1e83+dirty | 3.41 MiB | 4.67 MiB | 1.26 MiB |
| 99179a4+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| f26d7a8+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
The enableTracing property is deprecated in Sentry Cocoa SDK v7. Tracing is already verified to be disabled by checking that tracesSampleRate and tracesSampler are nil.
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 4167e15+dirty | 1228.96 ms | 1242.15 ms | 13.19 ms |
| a31630c+dirty | 1241.32 ms | 1226.98 ms | -14.34 ms |
| 2b89ce9+dirty | 1241.19 ms | 1254.20 ms | 13.01 ms |
| c7f264b+dirty | 1229.78 ms | 1225.84 ms | -3.94 ms |
| 11ded16+dirty | 1220.84 ms | 1221.60 ms | 0.76 ms |
| 1d62dde+dirty | 1204.96 ms | 1208.51 ms | 3.55 ms |
| 55b77fc+dirty | 1213.08 ms | 1218.19 ms | 5.11 ms |
| 60cd796+dirty | 1206.08 ms | 1213.36 ms | 7.28 ms |
| 266bc7e+dirty | 1217.73 ms | 1222.30 ms | 4.57 ms |
| 128ee72+dirty | 1204.73 ms | 1205.02 ms | 0.29 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 4167e15+dirty | 3.19 MiB | 4.57 MiB | 1.38 MiB |
| a31630c+dirty | 3.19 MiB | 4.54 MiB | 1.36 MiB |
| 2b89ce9+dirty | 3.19 MiB | 4.48 MiB | 1.29 MiB |
| c7f264b+dirty | 3.19 MiB | 4.48 MiB | 1.29 MiB |
| 11ded16+dirty | 3.19 MiB | 4.58 MiB | 1.39 MiB |
| 1d62dde+dirty | 3.19 MiB | 4.58 MiB | 1.39 MiB |
| 55b77fc+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 60cd796+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| 266bc7e+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 128ee72+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
Previous results on branch: capture-app-start-errors-v7
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 60d1e83+dirty | 1201.87 ms | 1204.61 ms | 2.74 ms |
| 99179a4+dirty | 1210.16 ms | 1213.57 ms | 3.40 ms |
| f26d7a8+dirty | 1227.33 ms | 1220.67 ms | -6.66 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 60d1e83+dirty | 3.41 MiB | 4.67 MiB | 1.26 MiB |
| 99179a4+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| f26d7a8+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
antonis
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The failed Detox tests should be fixed by porting #4914
# Conflicts: # packages/core/android/libs/replay-stubs.jar # samples/react-native/android/app/build.gradle
* chore(sample-e2e): Migrate from Detox to Maestro * fix set dsn script path * fix: Update script paths after detox-to-maestro migration The set-dsn scripts were moved from scripts/detox/ to scripts/ during the migration * Update script paths * Fix tests * Fix test failure * Fix idle issue * fix(e2e): Fix Maestro flows for captureMessage and captureSpaceflightNewsScreen - Add scrollUntilVisible for 'Capture message' button (might be off-screen) - Add proper waiting and scrolling for SpaceflightNewsScreen to trigger auto-load - Wait for 'Load More Articles' button to appear after autoLoadCount threshold * chore(e2e-sample): Increase Maestro driver startup timeout (cherry picked from commit ee429b5) * increase timeout * Increase timeouts on Android too --------- Co-authored-by: Krystof Woldrich <krystof.woldrich@sentry.io>
# Conflicts: # packages/core/android/libs/replay-stubs.jar
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog. This PR will not appear in the changelog. 🤖 This preview updates automatically when you update the PR. |
…ch (#5544) * chore: Merge Android UI profiling on the capture startup crashes branch * Fix logger compilation issue * Properly check logging values
# Conflicts: # packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java # samples/react-native/android/app/build.gradle
📢 Type of change
📜 Description
This PR merges
main(v7) oncapture-app-start-errors(#4472) and handles:💡 Motivation and Context
Bring #4472 up to date with the latest
main💚 How did you test it?
CI, Manual
📝 Checklist
sendDefaultPIIis enabled🔮 Next steps
#skip-changelog