Skip to content

iOS UI Profiling#5611

Merged
alwx merged 6 commits intomainfrom
alwx/feature/ios-profiling
Feb 4, 2026
Merged

iOS UI Profiling#5611
alwx merged 6 commits intomainfrom
alwx/feature/ios-profiling

Conversation

@alwx
Copy link
Contributor

@alwx alwx commented Feb 3, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Added missing support for UI profiling on iOS.

💡 Motivation and Context

Fixes #5517

📝 Checklist

  • I added tests to verify changes — or rather updated the existing Android tests
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

Merge it and enjoy!

@alwx alwx self-assigned this Feb 3, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 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).


  • iOS UI Profiling by alwx in #5611
  • fix(tracing): Fix native frames measurements dropped for idle transactions by antonis in #5813
  • feat(core): Support SENTRY_ENVIRONMENT in bare React Native builds by antonis in #5823
  • chore(deps): bump tar to ^7.5.11 by antonis in #5824
  • chore(deps): bump actions/create-github-app-token from 2.2.1 to 3.0.0 by dependabot in #5822
  • chore(deps): bump dorny/paths-filter from 3.0.2 to 4.0.1 by dependabot in #5820
  • chore(deps): bump reactivecircus/android-emulator-runner from 2.35.0 to 2.37.0 by dependabot in #5818
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.23.2 to 2.24.1 by dependabot in #5821
  • chore(deps): bump getsentry/craft from 2.23.2 to 2.24.1 by dependabot in #5819
  • chore(deps): bump undici from 6.23.0 to 6.24.1 by dependabot in #5817
  • chore(deps): bump flatted from 3.3.1 to 3.4.1 by dependabot in #5816
  • Ref: remove yarn from stub update by lucas-zimerman in #5811
  • Ref(CI): Unify stub update with android update by lucas-zimerman in #5807
  • release: 8.4.0 by lucas-zimerman in b90cb17d
  • feat(core): Generate sentry.options.json from Expo plugin config by antonis in #5804
  • Pass screenshotStrategy option from mobileReplayIntegration to the Android SDK by alwx in #5808
  • fix(core): Exclude server-only AI/MCP modules from native bundles by antonis in #5802
  • chore(deps): update Cocoa SDK to v9.7.0 by github-actions in #5805
  • chore(deps): update CLI to v3.3.3 by github-actions in #5806
  • Automatically capture a warning event when Expo Updates performs an emergency launch by alwx in #5794
  • fix(core): Improve native init log message clarity by antonis in #5801
  • feat(core): Add environment option to Expo config plugin by antonis in #5796
  • chore(deps): update CLI to v3.3.2 by github-actions in #5799
  • chore(deps): update Maestro to v2.3.0 by github-actions in #5790

Plus 116 more


🤖 This preview updates automatically when you update the PR.

@alwx alwx added the ready-to-merge Triggers the full CI test suite label Feb 3, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 432.46 ms 485.43 ms 52.97 ms
Size 43.75 MiB 48.41 MiB 4.66 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
90afdd3+dirty 375.94 ms 377.52 ms 1.58 ms
fdbea8b+dirty 494.72 ms 529.06 ms 34.34 ms
526494a+dirty 422.80 ms 438.90 ms 16.10 ms
7be1f99 454.83 ms 461.36 ms 6.53 ms
d1bfbde+dirty 478.88 ms 505.52 ms 26.64 ms
ad27f6e+dirty 471.44 ms 516.23 ms 44.79 ms
e2fa43d 451.68 ms 462.42 ms 10.74 ms
8490686+dirty 365.59 ms 400.24 ms 34.65 ms
8db9631+dirty 442.78 ms 461.96 ms 19.18 ms
ee69ed5+dirty 409.44 ms 441.30 ms 31.86 ms

App size

Revision Plain With Sentry Diff
90afdd3+dirty 17.75 MiB 19.70 MiB 1.95 MiB
fdbea8b+dirty 43.75 MiB 48.05 MiB 4.29 MiB
526494a+dirty 43.75 MiB 47.99 MiB 4.24 MiB
7be1f99 17.75 MiB 20.15 MiB 2.41 MiB
d1bfbde+dirty 43.75 MiB 47.99 MiB 4.24 MiB
ad27f6e+dirty 43.75 MiB 48.07 MiB 4.32 MiB
e2fa43d 17.75 MiB 20.15 MiB 2.41 MiB
8490686+dirty 17.75 MiB 19.70 MiB 1.96 MiB
8db9631+dirty 17.75 MiB 19.70 MiB 1.96 MiB
ee69ed5+dirty 43.75 MiB 48.04 MiB 4.29 MiB

Previous results on branch: alwx/feature/ios-profiling

Startup times

Revision Plain With Sentry Diff
6c186d1+dirty 463.36 ms 503.57 ms 40.21 ms

App size

Revision Plain With Sentry Diff
6c186d1+dirty 43.75 MiB 48.41 MiB 4.65 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1213.63 ms 1209.13 ms -4.50 ms
Size 3.38 MiB 4.60 MiB 1.22 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d861c16+dirty 1231.94 ms 1242.32 ms 10.38 ms
6416d6c+dirty 1220.38 ms 1222.98 ms 2.60 ms
785ffb1+dirty 1237.63 ms 1240.50 ms 2.87 ms
1ef8a04+dirty 1226.14 ms 1223.15 ms -2.99 ms
2f9fb30+dirty 1189.51 ms 1190.71 ms 1.20 ms
42a723e+dirty 1200.82 ms 1215.89 ms 15.07 ms
818a608+dirty 1205.76 ms 1208.00 ms 2.24 ms
77061ed+dirty 1233.16 ms 1234.88 ms 1.71 ms
ec14be7+dirty 1234.64 ms 1245.54 ms 10.90 ms
07808fb+dirty 1233.31 ms 1232.77 ms -0.54 ms

App size

Revision Plain With Sentry Diff
d861c16+dirty 2.63 MiB 4.00 MiB 1.36 MiB
6416d6c+dirty 3.41 MiB 4.59 MiB 1.18 MiB
785ffb1+dirty 2.63 MiB 3.81 MiB 1.18 MiB
1ef8a04+dirty 3.41 MiB 4.59 MiB 1.18 MiB
2f9fb30+dirty 3.41 MiB 4.59 MiB 1.18 MiB
42a723e+dirty 3.38 MiB 4.60 MiB 1.22 MiB
818a608+dirty 2.63 MiB 3.91 MiB 1.28 MiB
77061ed+dirty 2.63 MiB 3.98 MiB 1.34 MiB
ec14be7+dirty 2.63 MiB 3.98 MiB 1.34 MiB
07808fb+dirty 2.63 MiB 3.99 MiB 1.36 MiB

Previous results on branch: alwx/feature/ios-profiling

Startup times

Revision Plain With Sentry Diff
6c186d1+dirty 1217.70 ms 1220.51 ms 2.81 ms

App size

Revision Plain With Sentry Diff
6c186d1+dirty 3.38 MiB 4.60 MiB 1.22 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1214.48 ms 1219.77 ms 5.29 ms
Size 3.38 MiB 4.60 MiB 1.22 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d861c16+dirty 1226.00 ms 1223.35 ms -2.65 ms
6416d6c+dirty 1222.83 ms 1222.04 ms -0.79 ms
785ffb1+dirty 1213.71 ms 1213.37 ms -0.35 ms
1ef8a04+dirty 1184.42 ms 1186.44 ms 2.02 ms
2f9fb30+dirty 1219.06 ms 1223.38 ms 4.32 ms
42a723e+dirty 1225.29 ms 1220.22 ms -5.07 ms
818a608+dirty 1218.84 ms 1223.18 ms 4.34 ms
77061ed+dirty 1210.77 ms 1218.45 ms 7.68 ms
ec14be7+dirty 1229.62 ms 1230.53 ms 0.91 ms
07808fb+dirty 1240.76 ms 1251.00 ms 10.24 ms

App size

Revision Plain With Sentry Diff
d861c16+dirty 3.19 MiB 4.56 MiB 1.38 MiB
6416d6c+dirty 3.41 MiB 4.59 MiB 1.18 MiB
785ffb1+dirty 3.19 MiB 4.38 MiB 1.19 MiB
1ef8a04+dirty 3.41 MiB 4.59 MiB 1.18 MiB
2f9fb30+dirty 3.41 MiB 4.59 MiB 1.18 MiB
42a723e+dirty 3.38 MiB 4.60 MiB 1.22 MiB
818a608+dirty 3.19 MiB 4.48 MiB 1.29 MiB
77061ed+dirty 3.19 MiB 4.54 MiB 1.36 MiB
ec14be7+dirty 3.19 MiB 4.54 MiB 1.36 MiB
07808fb+dirty 3.19 MiB 4.56 MiB 1.37 MiB

Previous results on branch: alwx/feature/ios-profiling

Startup times

Revision Plain With Sentry Diff
6c186d1+dirty 1212.04 ms 1211.27 ms -0.77 ms

App size

Revision Plain With Sentry Diff
6c186d1+dirty 3.38 MiB 4.60 MiB 1.22 MiB

* @platform android
*/
androidProfilingOptions?: AndroidProfilingOptions;
profilingOptions?: ProfilingOptions;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we keep androidProfilingOptions and mark it as deprecated?
We can merge both values on the wrapper init and on a later version remove it.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can we keep androidProfilingOptions and mark it as deprecated?

Sounds good 👍

Since it's marked as experimental everywhere (docs, changelog) I'm also ok to just proceed with the change.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 433.02 ms 485.51 ms 52.49 ms
Size 43.94 MiB 49.27 MiB 5.33 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
fdbea8b+dirty 551.94 ms 577.02 ms 25.08 ms
11ded16+dirty 309.23 ms 310.55 ms 1.33 ms
526494a+dirty 361.10 ms 410.84 ms 49.74 ms
bfe454a+dirty 372.42 ms 424.52 ms 52.10 ms
955f2eb+dirty 388.13 ms 433.56 ms 45.44 ms
3bd3f0d+dirty 334.38 ms 402.19 ms 67.81 ms
c4e097a+dirty 382.43 ms 443.77 ms 61.34 ms
d1bfbde+dirty 438.90 ms 494.82 ms 55.92 ms
ad27f6e+dirty 484.67 ms 532.79 ms 48.12 ms
07808fb+dirty 392.47 ms 451.94 ms 59.47 ms

App size

Revision Plain With Sentry Diff
fdbea8b+dirty 43.94 MiB 48.87 MiB 4.93 MiB
11ded16+dirty 7.15 MiB 8.46 MiB 1.31 MiB
526494a+dirty 43.94 MiB 48.82 MiB 4.88 MiB
bfe454a+dirty 7.15 MiB 8.42 MiB 1.26 MiB
955f2eb+dirty 7.15 MiB 8.42 MiB 1.27 MiB
3bd3f0d+dirty 7.15 MiB 8.43 MiB 1.28 MiB
c4e097a+dirty 7.15 MiB 8.41 MiB 1.26 MiB
d1bfbde+dirty 43.94 MiB 48.82 MiB 4.88 MiB
ad27f6e+dirty 43.94 MiB 48.90 MiB 4.96 MiB
07808fb+dirty 7.15 MiB 8.43 MiB 1.28 MiB

Previous results on branch: alwx/feature/ios-profiling

Startup times

Revision Plain With Sentry Diff
6c186d1+dirty 434.30 ms 466.62 ms 32.32 ms

App size

Revision Plain With Sentry Diff
6c186d1+dirty 43.94 MiB 49.26 MiB 5.33 MiB


### Features

- Extends the experimental support of UI profiling to iOS ([#5611](https://github.com/getsentry/sentry-react-native/pull/5611))
Copy link
Contributor

Choose a reason for hiding this comment

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

If we decide to proceed with just renaming the androidProfilingOptions to profilingOptions in the conversation above let's add a note to the changelog

Suggested change
- Extends the experimental support of UI profiling to iOS ([#5611](https://github.com/getsentry/sentry-react-native/pull/5611))
- Extends the experimental support of UI profiling to iOS ([#5611](https://github.com/getsentry/sentry-react-native/pull/5611))
- Note that Android is also now using `profilingOptions` instead of `androidProfilingOptions`

Copy link
Contributor

@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.

The changes LGTM 🚀
Let's make that we handle the androidProfilingOptions deprecation/removal consistently before merging and update the docs.

@alwx alwx force-pushed the alwx/feature/ios-profiling branch from 89eb855 to 95f54e4 Compare February 4, 2026 10:07
@alwx
Copy link
Contributor Author

alwx commented Feb 4, 2026

@antonis @lucas-zimerman thanks for the suggestions — all changes are done and ready for the hopefully final review!

@alwx alwx requested a review from lucas-zimerman February 4, 2026 10:08
@alwx alwx enabled auto-merge (squash) February 4, 2026 10:08
@alwx alwx merged commit 6f5e35c into main Feb 4, 2026
70 of 71 checks passed
@alwx alwx deleted the alwx/feature/ios-profiling branch February 4, 2026 10:10
alwx added a commit to getsentry/sentry-docs that referenced this pull request Feb 5, 2026
…ing (#16260)

The support for iOS UI profling was added to React Native SDK:
getsentry/sentry-react-native#5611
Now it's time for the docs changes!

## IS YOUR CHANGE URGENT?  

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
- [ ] Urgent deadline (GA date, etc.): <!-- ENTER DATE HERE -->
- [ ] Other deadline: <!-- ENTER DATE HERE -->
- [x] None: Not urgent, can wait up to 1 week+
jaffrepaul pushed a commit to getsentry/sentry-docs that referenced this pull request Feb 9, 2026
…ing (#16260)

The support for iOS UI profling was added to React Native SDK:
getsentry/sentry-react-native#5611
Now it's time for the docs changes!

## IS YOUR CHANGE URGENT?  

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
- [ ] Urgent deadline (GA date, etc.): <!-- ENTER DATE HERE -->
- [ ] Other deadline: <!-- ENTER DATE HERE -->
- [x] None: Not urgent, can wait up to 1 week+
@github-actions
Copy link
Contributor

Fails
🚫 Please consider adding a changelog entry for the next release.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

### Features

- iOS UI Profiling ([#5611](https://github.com/getsentry/sentry-react-native/pull/5611))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description or adding a skip-changelog label.

Generated by 🚫 dangerJS against 95f54e4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Apple/Cocoa UI profiling

3 participants