Skip to content

Conversation

@antonis
Copy link
Contributor

@antonis antonis commented Jan 27, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Updates the Expo sample application to use Expo SDK 54, which includes React Native 0.81.5 and React 19.1.

Changes:

💡 Motivation and Context

Fixes #5591

💚 How did you test it?

CI, Manual

📝 Checklist

  • I added tests to verify changes
  • 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

#skip-changelog

@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 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 antonis added the ready-to-merge Triggers the full CI test suite label Jan 27, 2026
@antonis
Copy link
Contributor Author

antonis commented Jan 27, 2026

@sentry review

@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 385.62 ms 406.12 ms 20.50 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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 361.51 ms 388.32 ms 26.81 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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1215.98 ms 1220.19 ms 4.21 ms
Size 3.38 MiB 4.60 MiB 1.22 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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1216.40 ms 1221.61 ms 5.21 ms
Size 3.38 MiB 4.60 MiB 1.22 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

Updates the Expo sample application to use Expo SDK 54, which includes React Native 0.81.5 and React 19.1.

Changes:
- Upgrade Expo SDK from 53 to 54
- Upgrade React Native from 0.79.2 to 0.81.5
- Upgrade React from 19.0.0 to 19.1.0
- Update all Expo packages to SDK 54 compatible versions
- Fix ExternalLink component for expo-router 6.x compatibility (removed deprecated hrefAttrs)

Note: The native ios/android folders are gitignored as they are generated by expo prebuild. For local development in this monorepo, add this to ios/Podfile after running prebuild:

ENV['REACT_NATIVE_NODE_MODULES_DIR'] = File.join(__dir__, '..', 'node_modules', 'react-native')

This ensures the Sentry SDK detects the correct React Native version (0.81.5) instead of the version in packages/core/node_modules.

Resolves #5568

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@antonis antonis force-pushed the antonis/expo-sample-54 branch from 0e019b5 to 3c7788c Compare January 27, 2026 16:53
antonis and others added 5 commits January 29, 2026 12:41
Expo SDK 54 upgraded to React Native 0.81, which uses the new Hermes profiling API. In the monorepo, the Sentry SDK's podspec was detecting RN 0.80 (from packages/core/node_modules) instead of 0.81 (from samples/expo/node_modules), causing it to use the old Hermes API which was removed in RN 0.81.

Setting REACT_NATIVE_NODE_MODULES_DIR ensures the podspec detects the correct React Native version during CI builds.

This only affects the CI build - no changes to the core SDK.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fixes high severity vulnerability in tar 7.5.6:
- CVE: Arbitrary File Creation/Overwrite via Hardlink Path Traversal

Added resolution to force tar@^7.5.7 which includes the security patch.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Expo SDK 54 has larger codebase that causes OutOfMemoryError: Metaspace during lint analysis. Increased Gradle JVM memory settings:
- Heap: 4GB (from default 2GB)
- Metaspace: 1GB (from default ~256MB)

Fixes: OutOfMemoryError during lintVitalAnalyzeRelease task

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
# Conflicts:
#	samples/expo/package.json
"form-data": "4.0.4",
"tar-fs": "^3.1.1"
"tar-fs": "^3.1.1",
"tar": "^7.5.7"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was needed because:

  1. Expo SDK 54 → uses @expo/cli@54.0.22
  2. @expo/cli@54.0.22 → requires tar: ^7.5.2
  3. Yarn resolves → tar@7.5.6 (vulnerable) ❌ failed check
    4. Our fix → force tar@^7.5.7 (patched)

@antonis antonis marked this pull request as ready for review January 29, 2026 15:15
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.

Noting that the End-to-End Tests V2 / Test RN 0.83.0 legacy hermes ios production no and End-to-End Tests V2 / Test RN 0.83.0 new hermes ios production no (push) captureReplay tests are is also occurring on main and will be investigated separately

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.

Upgrade Expo sample to SDK 54

2 participants