Latest version (5.19.2 → 5.22.0) breaks on react-native-macos
OS:
- [ ] Windows
- [x] MacOS
- [ ] Linux
Platform:
- [ ] iOS
- [ ] Android
- [x] macOS
SDK:
- [x]
@sentry/react-native(>= 1.0.0) - [ ]
react-native-sentry(<= 0.43.2)
SDK version: 5.22.0
react-native version: 0.73.1
Are you using Expo?
- [ ] Yes
- [x] No
Are you using sentry.io or on-premise?
- [x] sentry.io (SaaS)
- [ ] on-premise
I have the following issue:
I have react native macOS app that doesn't use catalyst but rather react-native-macos. This means UIKit is not available.
I've just tried to update from rn-sentry 5.19.2 to 5.20.0 and it breaks macOS compatibility in a major way. I know macOS is not officially supported but everything was working mostly fine on each release, I only had to do minor patches. Also the fact that on the code exists the macro pre-processor SENTRY_HAS_UIKIT (paraphrasing, don't have the exact flag at hand) also implies there are some guards when not running on iOS.
On version 5.19.2 I only had to patch the following method:
On version 5.22.0 there is a new frame tracker feature that is heavily dependent on UIKit and breaks compilation on different places. Since the native sentry SDK for ios/macOS doesn't export all the symbols. I quickly tried to add more preprocessor checks, using the same SENTRY_HAS_UIKIT, but the amount of errors was too much.
Do you guys think it is possible to conditionally compile and check for UIKIT or is it too much work for you guys?
Steps to reproduce:
- Create a react-native-macos project
- Install @sentry/react-native
- Try to compile the app
Hey @ospfranco thanks for reaching out and your interest! Apologies for breaking your use case, we'll take a look at if/how we can help you out here, but can't give you an ETA right now.
@krystofwoldrich we recently added support for building the Cocoa SDK without UIKit dependency - we could investigate whether it helps/makes sense to use that somehow to support this use case.