Skip to content

Conversation

@antonis
Copy link
Contributor

@antonis antonis commented Dec 23, 2025

Description

  • Bump Cocoa to v9
  • Release Capture Startup Crashes

PRs

8.0.0-alpha.0

TODO

Breaking changes

Minimum Version Requirements

  • iOS/macOS/tvOS: (#5356)

    • iOS 15.0+ (previously 11.0+)
    • macOS 10.14+ (previously 10.13+)
    • tvOS 15.0+ (previously 11.0+)
  • Android: (#5578)

    • Sentry Android Gradle Plugin 6.0.0 (previously 5.x)
    • Android Gradle Plugin 7.4.0+ (previously 7.3.0+)
    • Kotlin 1.8+
  • Sentry Self-Hosted: (#5523)

    • Sentry CLI v3 requires self-hosted 25.11.1+ (previously 25.2.0)

#skip-changelog

Co-authored-by: GitHub <noreply@github.com>
@antonis antonis mentioned this pull request Dec 23, 2025
* chore(deps): update Cocoa SDK to v9.0.0-alpha.0

* Adds changelog

* fix: Fixes SentryScreenFrames use after being converted to Swift (#5153)

* fix: Fixes SentryScreenFrames use after being converted to Swift

* Fix build

---------

Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>

* Move `sentry-cocoa` `enableLogs` out of experimental (#5267)

* fix: Fixes SentryScreenFrames use after being converted to Swift

* Fix build

* Use non-experimental enableLogs

* bump target

* remove enable tracing

* Update enableLogs tests

---------

Co-authored-by: Itay Brenner <itay.brenner@sentry.io>
Co-authored-by: Itay Brenner <itaybrenner@hotmail.com>
Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>

* chore: Remove SentryFrameTracker imports (#5276)

* fix: Fixes SentryScreenFrames use after being converted to Swift

* Fix build

* Use non-experimental enableLogs

* bump target

* remove enable tracing

* Update enableLogs tests

* chore: Fix RNSentry after SentryFramesTracker conversion to swift

* Run linter

* Remove unused debug image provider imports

* Remove imports

* chore: Remove deprecated user property

* chore: Remove use of deprecate integrations API (#5304)

* Remove use of integrations in tests

* chore: Remove use of deprecated prop (#5322)

* ref: Move options to wrapper

---------

Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>
Co-authored-by: Denis Andrasec <denrase@gmail.com>
Co-authored-by: Noah Martin <noahm444@gmail.com>

* fix(podspec): Cocoa V9 allow any alpha version

* chore(sample): Cocoa-v9: Bump MacOS sample to macos 12.0 (#5359)

* fix: Fixes SentryScreenFrames use after being converted to Swift

* Fix build

* Use non-experimental enableLogs

* bump target

* remove enable tracing

* Update enableLogs tests

* chore: Fix RNSentry after SentryFramesTracker conversion to swift

* Run linter

* Remove unused debug image provider imports

* Remove imports

* chore: Remove deprecated user property

* chore: Remove use of deprecate integrations API (#5304)

* Remove use of integrations in tests

* chore: Remove use of deprecated prop (#5322)

* ref: Move options to wrapper

* chore(sample): Bump MacOS sample to macos 12.0 wich is the minimum for v9

---------

Co-authored-by: Itay Brenner <itay.brenner@sentry.io>
Co-authored-by: Itay Brenner <itaybrenner@hotmail.com>
Co-authored-by: Denis Andrasec <denrase@gmail.com>
Co-authored-by: Noah Martin <noahm444@gmail.com>

* chore(e2e): Cocoa-v9: Bump E2E to iOS 15.0 (#5369)

* fix: Fixes SentryScreenFrames use after being converted to Swift

* Fix build

* Use non-experimental enableLogs

* bump target

* remove enable tracing

* Update enableLogs tests

* chore: Fix RNSentry after SentryFramesTracker conversion to swift

* Run linter

* Remove unused debug image provider imports

* Remove imports

* chore: Remove deprecated user property

* chore: Remove use of deprecate integrations API (#5304)

* Remove use of integrations in tests

* chore: Remove use of deprecated prop (#5322)

* ref: Move options to wrapper

* chore(sample): Bump MacOS sample to macos 12.0 wich is the minimum for v9

* chore(e2e): Cocoa-v9: Bump E2E to iOS 15.0

* Bump to 15.1 due to RN 0.81.0 requirements

---------

Co-authored-by: Itay Brenner <itay.brenner@sentry.io>
Co-authored-by: Itay Brenner <itaybrenner@hotmail.com>
Co-authored-by: Denis Andrasec <denrase@gmail.com>
Co-authored-by: Noah Martin <noahm444@gmail.com>

* chore(ci): Cocoa V9: Run the full CI checks for cocoa-v9 (#5370)

* Update changelog

* Bumpt to RC1

* Remove cocoa-v9 from ci branches

* fix: Use new session replay name for hybrid SDK

* Fix rename

* chore(lint): Fixes lint issues

* Update changelog to GA

* Update changelog

* Bump minimum to 9.1.0

* Set Cocoa version to 9.1.0

---------

Co-authored-by: Itay Brenner <itaybrenner@hotmail.com>
Co-authored-by: Denis Andrašec <denrase@gmail.com>
Co-authored-by: Itay Brenner <itay.brenner@sentry.io>
Co-authored-by: Noah Martin <noahm444@gmail.com>
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
@antonis antonis added the ready-to-merge Triggers the full CI test suite label Dec 23, 2025
Copy link
Contributor Author

@antonis antonis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though merging is Blocked, I'm adding the ready-to-merge label so that all CI checks run on this branch.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 23, 2025

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 416.88 ms 431.39 ms 14.51 ms
Size 43.75 MiB 48.40 MiB 4.65 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
4604da9+dirty 366.44 ms 398.10 ms 31.66 ms
8ff81c0+dirty 574.58 ms 611.44 ms 36.86 ms
93137d1+dirty 400.15 ms 424.74 ms 24.59 ms
1ef8a04+dirty 415.16 ms 415.22 ms 0.06 ms
a31630c+dirty 408.91 ms 416.80 ms 7.89 ms
11ded16+dirty 317.29 ms 329.15 ms 11.86 ms
180638b+dirty 408.87 ms 432.04 ms 23.17 ms
8e653ac+dirty 360.28 ms 372.04 ms 11.76 ms
6416d6c+dirty 407.30 ms 422.00 ms 14.70 ms
161947d+dirty 393.26 ms 403.00 ms 9.74 ms

App size

Revision Plain With Sentry Diff
4604da9+dirty 17.75 MiB 19.74 MiB 2.00 MiB
8ff81c0+dirty 43.75 MiB 48.05 MiB 4.29 MiB
93137d1+dirty 17.75 MiB 19.70 MiB 1.95 MiB
1ef8a04+dirty 43.75 MiB 48.05 MiB 4.29 MiB
a31630c+dirty 17.75 MiB 19.68 MiB 1.94 MiB
11ded16+dirty 17.75 MiB 19.75 MiB 2.00 MiB
180638b+dirty 43.75 MiB 48.08 MiB 4.33 MiB
8e653ac+dirty 17.75 MiB 19.75 MiB 2.00 MiB
6416d6c+dirty 43.75 MiB 48.05 MiB 4.30 MiB
161947d+dirty 17.75 MiB 19.70 MiB 1.95 MiB

Previous results on branch: v8

Startup times

Revision Plain With Sentry Diff
b4fa5b4+dirty 449.55 ms 481.50 ms 31.95 ms
12fba4a+dirty 483.60 ms 514.49 ms 30.89 ms
fa0d109+dirty 429.60 ms 452.50 ms 22.90 ms
d6aa223+dirty 543.40 ms 564.24 ms 20.84 ms
206e87e+dirty 464.80 ms 504.68 ms 39.88 ms
bc8a1ed+dirty 442.18 ms 476.27 ms 34.08 ms

App size

Revision Plain With Sentry Diff
b4fa5b4+dirty 43.75 MiB 48.08 MiB 4.33 MiB
12fba4a+dirty 43.75 MiB 48.40 MiB 4.64 MiB
fa0d109+dirty 43.75 MiB 48.40 MiB 4.64 MiB
d6aa223+dirty 43.75 MiB 48.55 MiB 4.80 MiB
206e87e+dirty 43.75 MiB 48.40 MiB 4.64 MiB
bc8a1ed+dirty 43.75 MiB 48.08 MiB 4.33 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 23, 2025

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 441.56 ms 484.63 ms 43.07 ms
Size 43.94 MiB 49.26 MiB 5.32 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
8ff81c0+dirty 392.47 ms 431.52 ms 39.05 ms
1ef8a04+dirty 450.73 ms 482.38 ms 31.65 ms
785ffb1+dirty 380.65 ms 451.83 ms 71.18 ms
ba75c7c+dirty 377.92 ms 417.74 ms 39.83 ms
180638b+dirty 434.46 ms 470.90 ms 36.44 ms
8e653ac+dirty 304.49 ms 308.84 ms 4.35 ms
6416d6c+dirty 469.16 ms 508.22 ms 39.06 ms
a2bb688+dirty 371.19 ms 389.18 ms 17.99 ms
59d1977+dirty 366.15 ms 393.21 ms 27.06 ms
a699d13+dirty 441.38 ms 487.27 ms 45.89 ms

App size

Revision Plain With Sentry Diff
8ff81c0+dirty 43.94 MiB 48.87 MiB 4.93 MiB
1ef8a04+dirty 43.94 MiB 48.87 MiB 4.93 MiB
785ffb1+dirty 7.15 MiB 8.42 MiB 1.27 MiB
ba75c7c+dirty 7.15 MiB 8.42 MiB 1.27 MiB
180638b+dirty 43.94 MiB 48.91 MiB 4.97 MiB
8e653ac+dirty 7.15 MiB 8.46 MiB 1.31 MiB
6416d6c+dirty 43.94 MiB 48.88 MiB 4.94 MiB
a2bb688+dirty 7.15 MiB 8.43 MiB 1.28 MiB
59d1977+dirty 43.94 MiB 49.22 MiB 5.29 MiB
a699d13+dirty 43.94 MiB 48.88 MiB 4.94 MiB

Previous results on branch: v8

Startup times

Revision Plain With Sentry Diff
b4fa5b4+dirty 382.09 ms 398.28 ms 16.19 ms
12fba4a+dirty 456.57 ms 462.90 ms 6.32 ms
fa0d109+dirty 413.71 ms 434.22 ms 20.51 ms
d6aa223+dirty 436.98 ms 466.42 ms 29.44 ms
206e87e+dirty 416.94 ms 440.98 ms 24.04 ms
bc8a1ed+dirty 396.10 ms 426.80 ms 30.69 ms

App size

Revision Plain With Sentry Diff
b4fa5b4+dirty 43.94 MiB 48.91 MiB 4.97 MiB
12fba4a+dirty 43.94 MiB 49.22 MiB 5.29 MiB
fa0d109+dirty 43.94 MiB 49.22 MiB 5.29 MiB
d6aa223+dirty 43.94 MiB 49.38 MiB 5.44 MiB
206e87e+dirty 43.94 MiB 49.22 MiB 5.29 MiB
bc8a1ed+dirty 43.94 MiB 48.91 MiB 4.97 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 23, 2025

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1209.43 ms 1217.08 ms 7.65 ms
Size 3.38 MiB 4.67 MiB 1.29 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
6bd9054+dirty 1207.02 ms 1199.27 ms -7.76 ms
d73150f+dirty 1224.52 ms 1227.17 ms 2.65 ms
d081295+dirty 1205.24 ms 1207.52 ms 2.28 ms
d1fd647+dirty 1218.16 ms 1225.82 ms 7.65 ms
ea3e26e+dirty 1216.61 ms 1214.15 ms -2.47 ms
80e4616+dirty 1206.90 ms 1205.94 ms -0.96 ms
955f2eb+dirty 1225.78 ms 1239.27 ms 13.49 ms
5ee3314+dirty 1234.25 ms 1235.44 ms 1.19 ms
70250df+dirty 1211.96 ms 1222.31 ms 10.35 ms
664c66f+dirty 1195.94 ms 1194.80 ms -1.14 ms

App size

Revision Plain With Sentry Diff
6bd9054+dirty 3.41 MiB 4.67 MiB 1.25 MiB
d73150f+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d081295+dirty 3.41 MiB 4.59 MiB 1.18 MiB
d1fd647+dirty 3.19 MiB 4.56 MiB 1.37 MiB
ea3e26e+dirty 3.41 MiB 4.58 MiB 1.17 MiB
80e4616+dirty 3.38 MiB 4.60 MiB 1.22 MiB
955f2eb+dirty 3.19 MiB 4.55 MiB 1.36 MiB
5ee3314+dirty 3.19 MiB 4.55 MiB 1.37 MiB
70250df+dirty 3.44 MiB 4.59 MiB 1.15 MiB
664c66f+dirty 3.38 MiB 4.60 MiB 1.22 MiB

Previous results on branch: v8

Startup times

Revision Plain With Sentry Diff
d6aa223+dirty 1216.76 ms 1213.40 ms -3.37 ms
b4fa5b4+dirty 1213.59 ms 1211.26 ms -2.33 ms
bc8a1ed+dirty 1198.66 ms 1200.60 ms 1.94 ms
206e87e+dirty 1197.12 ms 1204.25 ms 7.13 ms
fa0d109+dirty 1206.81 ms 1205.38 ms -1.43 ms

App size

Revision Plain With Sentry Diff
d6aa223+dirty 3.38 MiB 4.67 MiB 1.29 MiB
b4fa5b4+dirty 3.44 MiB 4.66 MiB 1.22 MiB
bc8a1ed+dirty 3.44 MiB 4.66 MiB 1.22 MiB
206e87e+dirty 3.38 MiB 4.67 MiB 1.29 MiB
fa0d109+dirty 3.38 MiB 4.67 MiB 1.29 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 23, 2025

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1214.20 ms 1223.30 ms 9.09 ms
Size 3.38 MiB 4.67 MiB 1.29 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
6bd9054+dirty 1212.20 ms 1217.89 ms 5.70 ms
d73150f+dirty 1198.44 ms 1210.06 ms 11.62 ms
d081295+dirty 1214.40 ms 1211.27 ms -3.13 ms
d1fd647+dirty 1219.35 ms 1233.18 ms 13.83 ms
ea3e26e+dirty 1229.13 ms 1228.46 ms -0.67 ms
80e4616+dirty 1221.32 ms 1225.64 ms 4.32 ms
955f2eb+dirty 1235.06 ms 1253.88 ms 18.81 ms
5ee3314+dirty 1215.18 ms 1207.64 ms -7.54 ms
70250df+dirty 1214.51 ms 1215.04 ms 0.53 ms
664c66f+dirty 1215.37 ms 1221.30 ms 5.92 ms

App size

Revision Plain With Sentry Diff
6bd9054+dirty 3.41 MiB 4.67 MiB 1.25 MiB
d73150f+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d081295+dirty 3.41 MiB 4.59 MiB 1.18 MiB
d1fd647+dirty 2.63 MiB 3.99 MiB 1.36 MiB
ea3e26e+dirty 3.41 MiB 4.58 MiB 1.17 MiB
80e4616+dirty 3.38 MiB 4.60 MiB 1.22 MiB
955f2eb+dirty 2.63 MiB 3.98 MiB 1.35 MiB
5ee3314+dirty 2.63 MiB 3.99 MiB 1.35 MiB
70250df+dirty 3.44 MiB 4.59 MiB 1.15 MiB
664c66f+dirty 3.38 MiB 4.60 MiB 1.22 MiB

Previous results on branch: v8

Startup times

Revision Plain With Sentry Diff
d6aa223+dirty 1192.33 ms 1208.17 ms 15.84 ms
b4fa5b4+dirty 1203.83 ms 1207.13 ms 3.30 ms
bc8a1ed+dirty 1194.70 ms 1201.18 ms 6.48 ms
206e87e+dirty 1184.11 ms 1183.19 ms -0.92 ms
fa0d109+dirty 1216.02 ms 1220.67 ms 4.65 ms

App size

Revision Plain With Sentry Diff
d6aa223+dirty 3.38 MiB 4.67 MiB 1.29 MiB
b4fa5b4+dirty 3.44 MiB 4.66 MiB 1.22 MiB
bc8a1ed+dirty 3.44 MiB 4.66 MiB 1.22 MiB
206e87e+dirty 3.38 MiB 4.67 MiB 1.29 MiB
fa0d109+dirty 3.38 MiB 4.67 MiB 1.29 MiB

antonis and others added 6 commits January 8, 2026 15:00
* chore(deps): update CLI to v3.0.2

* Update changelog

* Bump in core
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>
@github-actions
Copy link
Contributor

github-actions bot commented Jan 13, 2026

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


This PR will not appear in the changelog.


🤖 This preview updates automatically when you update the PR.

antonis and others added 10 commits January 13, 2026 16:55
# Conflicts:
#	CHANGELOG.md
#	packages/core/RNSentry.podspec
#	packages/core/package.json
#	yarn.lock
# Conflicts:
#	CHANGELOG.md
#	packages/core/package.json
#	yarn.lock
# Conflicts:
#	CHANGELOG.md
#	packages/core/package.json
#	yarn.lock
# Conflicts:
#	CHANGELOG.md
#	packages/core/package.json
#	yarn.lock
…#5578)

Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Antonis Lilis <antonis.lilis@sentry.io>
@antonis
Copy link
Contributor Author

antonis commented Jan 27, 2026

@sentry review

antonis and others added 3 commits January 29, 2026 13:52
* chore(changelog): Add upgrade notice in the changelog

* Update versions

* Also bump header notice
# Conflicts:
#	packages/core/package.json
#	yarn.lock
* ref(ios): Extract Cocoa SDK init into standalone file (#4442)

* ref(android): Extracts Android native initialization to standalone structures (#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>

* feat(experimental): Add native `startWithConfigureOptions` for Apple platforms (#4444)

* feat: Read `sentry.options.json` during cocoa init (#4447)

* Adds utility class for converting `JsonObject` to `WritableMap` (#4479)

* Convert json object to writable map

* Make class/methods package-private(default)

* feat: Automatically load `sentry.options.json` file (#4476)

* feat(experimental): Initialize Android SDK from json configuration (#4451)

* misc: Add `sentry.options.json` example to the changelog (#4509)

* feat(init): Load options from `sentry.options.json` in JS (#4510)

* release: 6.7.0-alpha.0

* misc(sample): Change RN Sample to use native file init by default (#4522)

* chore(sample-rn): Remove duplicate init options from code (#4532)

* chore(sample-rn): Always use fhe file option (including auto init) (#4533)

* internal(sample-rn): Add Detox for integration/e2e tests of the rn sample (#4535)

* internal(sample-rn): Add header and message envelope tests (#4536)

* fix(sample-e2e): Fix type errors missing sentry/core and afterAll (#4564)

* chore(samples): Add package scripts for native builds, dsn and testing (#4561)

* test(e2e): Verify captured Errors Screen transaction (#4584)

* test(e2e): Add auto init from JS tests (#4588)

* test(e2e): Add app start crash test for iOS (#4593)

* test(e2e): Avoid race conditions when waiting for captured message (#4595)

* chore(sample-e2e): Move Detox related files to e2e-detox dir

* fix: remove unused SentryPackage import

Removed unused import that was causing CI lint failure

* fix: update RNSentryStartTest for Sentry Android SDK v7 API changes

- Removed assertions for packages getter (not available in v7)
- Removed assertion for enableTracing property (removed in v7)
- Added comments explaining the API changes

* fix: remove unused addPackages method to fix PMD lint error

The method was a no-op after v7 API changes, so removing it entirely
to avoid unused parameter warnings from PMD.

* fix: update RNSentrySDKTest for Sentry Android SDK v7 API changes

- Removed assertions for enableTracing property (removed in v7)
- Removed assertions for packages getter (not available in v7)
- Added comments explaining the API changes

* fix: use relative path for RNSentrySDK+Test.h import in bridging header

The file is in the parent directory, so use ../ prefix to fix the import path

* fix: remove deprecated enableTracing property in iOS RNSentryStart

The property is deprecated in v7. Tracing is already disabled by setting
tracesSampleRate and tracesSampler to nil.

* fix: remove enableTracing assertions from iOS tests

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.

* Update Podspec

* Fix lint issue

* ref(sample-e2e): v7: Migrate from Detox to Maestro (#5473)

* 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>

* chore: Merge Android UI profiling on the capture startup crashes branch (#5544)

* chore: Merge Android UI profiling on the capture startup crashes branch

* Fix logger compilation issue

* Properly check logging values

* fix SR iOS issue (#5560)

* Remove duplicate changelog entry

* feat(expo): Add RNSentrySDK APIs support to @sentry/react-native/expo 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>

* Fix native ios tests

* Mark area

Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>

* fix(android): Fix ConcurrentModificationException (#5588)

* fix(android): Fix ConcurrentModificationException when disabling native crash handling

When enableNativeCrashHandling is set to false, the code was iterating over
the integrations list with a for-each loop while calling remove() directly,
which causes a ConcurrentModificationException at runtime.

Fixed by using Java 8's removeIf() method which safely handles iteration
and removal in a single operation. This is more concise and follows modern
Java best practices.

Added unit tests to verify the fix and ensure integrations are properly
removed without throwing exceptions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Lint fix

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(android): Fix crash when spotlight is enabled without defaultSidecarUrl

The code attempted to read defaultSidecarUrl without checking if the key
exists in the options map. This caused a NoSuchKeyException crash during
startup when spotlight was set to true in sentry.options.json without
providing defaultSidecarUrl.

Added key existence check to match iOS implementation behavior and prevent
the crash while maintaining backward compatibility.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* test(e2e): Add auto init from JS tests for Android (#5583)

* test(e2e): Add auto init from JS tests for Android

Implements Android E2E testing infrastructure to verify both manual native initialization and auto initialization from JavaScript, matching the iOS implementation and resolving issue #4912.

Key additions:
- Jest configs for android.auto and android.manual test modes
- Build scripts that toggle SENTRY_DISABLE_NATIVE_START at compile time
- Test scripts to run auto and manual test suites separately
- App start crash testing via flag file mechanism
- TestControlModule to enable/disable crash-on-start from JS
- Comprehensive E2E test documentation

Unlike iOS which uses launch arguments at runtime, Android requires separate builds with different build configurations to control native initialization.

Closes #4912

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(e2e): Add scrolling to find crash control buttons in Android test

The crash control buttons are off-screen, so the Maestro flow needs to
scroll to find them before tapping. This matches the pattern used in
other Android E2E tests.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(e2e): Make Android crash flag auto-expire after one crash

The crash flag file was persisting across app launches, causing the app
to crash indefinitely. Now the flag auto-deletes when read, allowing:
1. First launch: Enable flag
2. Second launch: Read flag, delete it, then crash
3. Third launch: Start normally and send crash report

This solves the chicken-and-egg problem where the app couldn't reach
JavaScript to clear the flag because it kept crashing before JS loaded.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(e2e): Handle wrapped exceptions in Android crash test

Android wraps exceptions thrown in Application.onCreate() with:
"Unable to create application... RuntimeException: <original message>"

Updated the test to check if ANY exception in the chain contains our
intentional crash message, rather than expecting an exact match on the
first exception.

Test now passes locally and should pass in CI.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Clean up notes for now

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(android): Fix crash when dsn or devServerUrl are missing from options

Fixes a crash on Android startup when initializing from sentry.options.json
without dsn or devServerUrl fields. The code was calling getString() on
ReadableMap without checking if the keys exist first, which throws
NoSuchKeyException for missing keys.

Both fields are optional in configuration files, so the code now checks
for key existence before accessing values, returning null when keys are
missing. This matches the pattern used throughout the rest of the file
and is already handled correctly by the null-checks in the breadcrumb
filter logic.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: Krystof Woldrich <krystof.woldrich@sentry.io>
Co-authored-by: getsentry-bot <bot@sentry.io>
Co-authored-by: getsentry-bot <bot@getsentry.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Blocked ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants