-
-
Notifications
You must be signed in to change notification settings - Fork 357
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
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9bf5446+dirty | 1218.60 ms | 1210.45 ms | -8.15 ms |
| d751a5d+dirty | 1212.22 ms | 1217.94 ms | 5.71 ms |
| 88890fe+dirty | 1219.00 ms | 1222.08 ms | 3.08 ms |
| f081f58+dirty | 1208.37 ms | 1215.56 ms | 7.19 ms |
| 0dff710+dirty | 1194.90 ms | 1196.15 ms | 1.25 ms |
| 5c16cdc+dirty | 1235.67 ms | 1241.18 ms | 5.51 ms |
| 5602cc4+dirty | 1204.83 ms | 1212.47 ms | 7.64 ms |
| c08359e+dirty | 1200.59 ms | 1211.81 ms | 11.22 ms |
| 000da7a+dirty | 1204.50 ms | 1218.94 ms | 14.44 ms |
| c1573b3+dirty | 1245.69 ms | 1245.48 ms | -0.21 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9bf5446+dirty | 3.41 MiB | 4.59 MiB | 1.18 MiB |
| d751a5d+dirty | 3.19 MiB | 4.54 MiB | 1.36 MiB |
| 88890fe+dirty | 3.19 MiB | 4.57 MiB | 1.38 MiB |
| f081f58+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 0dff710+dirty | 3.44 MiB | 4.59 MiB | 1.15 MiB |
| 5c16cdc+dirty | 3.19 MiB | 4.53 MiB | 1.34 MiB |
| 5602cc4+dirty | 3.41 MiB | 4.67 MiB | 1.25 MiB |
| c08359e+dirty | 3.19 MiB | 4.38 MiB | 1.19 MiB |
| 000da7a+dirty | 3.19 MiB | 4.48 MiB | 1.29 MiB |
| c1573b3+dirty | 3.19 MiB | 4.38 MiB | 1.19 MiB |
Previous results on branch: capture-app-start-errors-v7
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| dd6c13c+dirty | 1205.39 ms | 1205.06 ms | -0.33 ms |
| 99179a4+dirty | 1210.16 ms | 1213.57 ms | 3.40 ms |
| be05583+dirty | 1222.15 ms | 1225.55 ms | 3.40 ms |
| f26d7a8+dirty | 1227.33 ms | 1220.67 ms | -6.66 ms |
| 60d1e83+dirty | 1201.87 ms | 1204.61 ms | 2.74 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| dd6c13c+dirty | 3.38 MiB | 4.60 MiB | 1.22 MiB |
| 99179a4+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| be05583+dirty | 3.38 MiB | 4.60 MiB | 1.22 MiB |
| f26d7a8+dirty | 3.44 MiB | 4.67 MiB | 1.23 MiB |
| 60d1e83+dirty | 3.41 MiB | 4.67 MiB | 1.26 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
# Conflicts: # packages/core/android/libs/replay-stubs.jar # samples/react-native/android/app/build.gradle
… plugin (#4633) * useNativeInit Android implementation * Adds changelog * useNativeInit iOS implementation * Fix indentation * Extend test cases with realistic data * Adds code sample in the changelog * Fix CHANGELOG.md Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com> * Warn if RESentySDK.init/start wasn't injected * Make useNativeInit opt-in * Make Android failure warning more clear Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> * Make Android no update warning more clear Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> * Use path.basename to get last path component * Update tests to account for the new warnings * Explicitly check for kotlin * Add filename in the warning message * Import only if init injection succeeds * Explicitly check for Objective-C * Add filename in the warning * Make iOS file not found warning more clear * Import only if init injection succeeds * Reset test mock config in a function * Lint issue * Add missing quote Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com> * Remove unneeded async Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> * Set useNativeInit = false by default * dynamically fill white spaces * Add unsupported language in warning message * Add objcpp in detected languages Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> * Update tests for objcpp * ref(expo-plugin): Split utils to logger, version and utils (#4906) Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com> * Update changelog * fix(ios): Add Swift module support for RNSentrySDK native init Fixes Swift compilation errors when using the useNativeInit Expo plugin feature. Changes: - Updated RNSentry.h to use angle bracket import for RNSentrySDK, properly exposing it through the module system - Added DEFINES_MODULE to RNSentry.podspec to enable Swift module generation - Fixed Expo plugin to insert import after first import statement (supports modern Expo AppDelegate structure without UIKit import) This enables Swift code to successfully import RNSentry and call RNSentrySDK.start() when using native initialization. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix test * Update changelog * Fix native tests * Fix lint issue * Fix native tests * Revert unneeded changes * Fix sample app build --------- Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com> Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
📢 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