Expo rewrite to let us showcase Expo-related features - #131
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
This is a great change! Thanks so much for taking on this challenge. However there is a key detail about how we generate the test data automatically using this repo: I'll run some manual testing to verify it still works 👍 |
Restore CI/release workflows via expo prebuild, fix app.config.js (bundle ids, Sentry org/project, dynamic version, expo-system-ui), fix Android/iOS safe-area and scroll bugs, and align the SE env var convention between the app and github_release.sh. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Restore CODEOWNERS, lint/prettier configs and the lint script, and the release artifact uploads in github_release.sh. Carry over native settings that had no Expo equivalent: iOS display name, local-networking ATS exception, and the build number / versionCode sequence. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
expo-linear-gradient and expo-status-bar were never imported (the bare RN app didn't use a gradient either, so the swap carried over a dead dep). Point the README and troubleshooting docs at the prebuild flow CI actually uses instead of EAS, which was never configured here. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Expo SDK 57's expo-modules-jsi uses `weak let`, which needs Swift 6.3 / Xcode 26.4. The macos-15 image is too old and fails while building the ExpoModulesJSI xcframework. Document the same failure for local builds. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
babel-preset-expo inlines EXPO_PUBLIC_* from the bundler process env at transform time, so the value has to be present for the gradlew/xcodebuild step that builds the bundle. release.yml builds the release APK in CI, and the TDA pipeline consumes that APK from the GitHub release -- without this it ships with SE undefined and the beforeSend fingerprint never fires. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
@nw-sentry could you also give it another round of review? |
There was a problem hiding this comment.
Looks good on my side 🎉
Thank you for your work on this Alex 🙇
Let's also wait for @nw-sentry to approve before merging.
nw-sentry
left a comment
There was a problem hiding this comment.
this is awesome! Thanks so much for doing this
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.