Expo rewrite to let us showcase Expo-related features - #131
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| "icon": "./assets/icon.png", | ||
| "userInterfaceStyle": "light", | ||
| "ios": { | ||
| "supportsTablet": true |
There was a problem hiding this comment.
I needed to add a bundle identifier to run the app on iOS. Eg.
| "supportsTablet": true | |
| "supportsTablet": true, | |
| "bundleIdentifier": "com.sentry.reactnative.expo.demo" |
| "ios": { | ||
| "supportsTablet": true | ||
| }, | ||
| "android": { |
There was a problem hiding this comment.
I needed to add a package to run the app on Android. Eg.
| "android": { | |
| "android": { | |
| "package": "com.sentry.reactnative.expo.demo", |
| "@sentry/react-native", | ||
| { | ||
| "url": "https://sentry.io/", | ||
| "organization": "sentry-sdks", |
There was a problem hiding this comment.
I think this is not correct since the demo has a different org.
There was a problem hiding this comment.
Please also check the project below.
| "expo": { | ||
| "name": "sentry_react_native_expo", | ||
| "slug": "sentry_react_native_expo", | ||
| "version": "1.0.0", |
There was a problem hiding this comment.
I think the version was not set but defined dynamically in the old app
There was a problem hiding this comment.
h: All the build and test workflows are deleted. We need those both to validate the app but also for the team to be able to create new releases for demos and to generate data.
| "expo-linear-gradient": "~57.0.1", | ||
| "expo-status-bar": "~57.0.1", |
There was a problem hiding this comment.
l: we should check if those are used, otherwise let's remove them
| "version": "1.0.0", | ||
| "orientation": "portrait", | ||
| "icon": "./assets/icon.png", | ||
| "userInterfaceStyle": "light", |
There was a problem hiding this comment.
This needs the expo-system-ui dependency to have an effect
| import {SentryUserFeedbackActionButton} from './src/components/UserFeedbackModal'; | ||
|
|
||
| // SE is read from EXPO_PUBLIC_SE environment variable (.env file) | ||
| const SE = process.env.EXPO_PUBLIC_SE; |
There was a problem hiding this comment.
I think this would break the fingerprint logic below. We should probably revert to the previous .env import


Motivation
Most of our users use Expo nowadays but our sample app doesn't. In addition, we've recently introduced a bunch of Expo-related features that you cannot showcase without Expo.
What this PR does
Rewrites the demo app using Expo (managed workflow), replacing the bare React Native setup with native
android/andios/directories.Fixes getsentry/sentry-react-native#6490
This is a literal migration — all parts of the app have been ported to Expo. The large number of affected lines is due to the structural change (removing native project directories, replacing entry point, adopting Expo config), not functional changes.
What's there:
Intentionally swapped for Expo equivalents:
As 99% of the code remains unchanged, the best way to verify it is by running it and checking that the data is correctly being sent and handled by Sentry.