Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/buildandtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,18 @@ jobs:
cache-dependency-path: yarn.lock
- name: Install Dependencies
run: yarn install

- name: Install Swiftly
run: |
SWIFTLY_FILE="swiftly-$(uname -m).tar.gz"
curl -sL https://download.swift.org/swiftly/linux/swiftly-x86_64.tar.gz -o $SWIFTLY_FILE
tar zxf $SWIFTLY_FILE

./swiftly init --quiet-shell-followup
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
hash -r
sudo apt-get -y install libcurl4-openssl-dev

- name: Lint
run: yarn lint

Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
build-type: ['dev', 'production']
include:
- platform: ios
xcode-version: '16.2'
runs-on: macos-14
- platform: macos
runs-on: macos-15
Expand Down Expand Up @@ -84,6 +85,9 @@ jobs:
- name: Gradle cache
uses: gradle/gradle-build-action@v3

- run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode-version }}.app/Contents/Developer
if: ${{ matrix.platform == 'ios' }}

- name: Setup Global Xcode Tools
if: ${{ matrix.platform == 'ios' }}
run: which xcbeautify || brew install xcbeautify
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,6 @@ node_modules.bak
# Sentry React Native Monorepo
/packages/core/README.md
.env.sentry-build-plugin

# SwiftLint
swiftlint/*
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,20 @@
> make sure you follow our [migration guide](https://docs.sentry.io/platforms/react-native/migration/) first.
<!-- prettier-ignore-end -->

## Unreleased

### Fixes

- Vendor `metro/countLines` function to avoid issues with the private import ([#5185](https://github.com/getsentry/sentry-react-native/pull/5185))
- Fix baseJSBundle and bundleToString TypeErrors with Metro 0.83.2 ([#5206](https://github.com/getsentry/sentry-react-native/pull/5206))
- Fixes .env file loading in Expo sourcemap uploads ([#5210](https://github.com/getsentry/sentry-react-native/pull/5210))

### Dependencies

- Bump Cocoa SDK from v8.53.2 to v8.56.2 ([#5214](https://github.com/getsentry/sentry-react-native/pull/5214))
- [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8562)
- [diff](https://github.com/getsentry/sentry-cocoa/compare/8.53.2...8.56.2)

## 6.21.0

### Important Changes
Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
"set-version-samples": "lerna run set-version"
},
"devDependencies": {
"@expo/swiftlint": "^0.57.1",
"@naturalcycles/ktlint": "^1.13.0",
"@sentry/cli": "2.53.0",
"clang-format": "^1.8.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/RNSentry.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Pod::Spec.new do |s|

s.compiler_flags = other_cflags

s.dependency 'Sentry/HybridSDK', '8.53.2'
s.dependency 'Sentry/HybridSDK', '8.56.2'

if defined? install_modules_dependencies
# Default React Native dependencies for 0.71 and above (new and legacy architecture)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,7 @@ final class RNSentryReplayOptions: XCTestCase {
] as NSDictionary).mutableCopy() as! NSMutableDictionary
RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif
XCTAssertEqual(actualOptions.sessionReplay.sessionSampleRate, 0.75)
}

Expand All @@ -82,11 +78,7 @@ final class RNSentryReplayOptions: XCTestCase {
] as NSDictionary).mutableCopy() as! NSMutableDictionary
RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif
XCTAssertEqual(actualOptions.sessionReplay.onErrorSampleRate, 0.75)
}

Expand Down Expand Up @@ -116,11 +108,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.maskAllImages, true)
assertContainsClass(classArray: actualOptions.sessionReplay.maskedViewClasses, stringClass: "RCTImageView")
Expand All @@ -135,11 +123,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.maskAllImages, false)
XCTAssertEqual(actualOptions.sessionReplay.maskedViewClasses.count, 0)
Expand All @@ -154,11 +138,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.maskAllText, true)
assertContainsClass(classArray: actualOptions.sessionReplay.maskedViewClasses, stringClass: "RCTTextView")
Expand All @@ -182,11 +162,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.maskAllText, false)
XCTAssertEqual(actualOptions.sessionReplay.maskedViewClasses.count, 0)
Expand All @@ -200,11 +176,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertTrue(actualOptions.sessionReplay.enableViewRendererV2)
}
Expand All @@ -218,11 +190,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertTrue(actualOptions.sessionReplay.enableViewRendererV2)
}
Expand All @@ -236,11 +204,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertFalse(actualOptions.sessionReplay.enableViewRendererV2)
}
Expand All @@ -253,11 +217,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertFalse(actualOptions.sessionReplay.enableFastViewRendering)
}
Expand All @@ -271,11 +231,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertTrue(actualOptions.sessionReplay.enableFastViewRendering)
}
Expand All @@ -289,15 +245,11 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertFalse(actualOptions.sessionReplay.enableFastViewRendering)
}

func testReplayQualityDefault() {
let optionsDict = ([
"dsn": "https://[email protected]/1234567",
Expand All @@ -306,11 +258,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium)
}
Expand All @@ -324,11 +272,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.low)
}
Expand All @@ -342,11 +286,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium)
}
Expand All @@ -360,11 +300,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.high)
}
Expand All @@ -378,11 +314,7 @@ final class RNSentryReplayOptions: XCTestCase {

RNSentryReplay.updateOptions(optionsDict)

#if CROSS_PLATFORM_TEST
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
#else
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
#endif

XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,8 @@

@class SentryOptions;

#if CROSS_PLATFORM_TEST
@interface
SentrySDKInternal (PrivateTests)
#else
@interface
SentrySDK (PrivateTests)
#endif

+ (nullable SentryOptions *)options;
@end
Original file line number Diff line number Diff line change
Expand Up @@ -465,13 +465,8 @@ - (void)prepareNativeFrameMocksWithLocalSymbolication:(BOOL)debug
SentryOptions *sentryOptions = [[SentryOptions alloc] init];
sentryOptions.debug = debug; // no local symbolication

#if CROSS_PLATFORM_TEST
id sentrySDKMock = OCMClassMock([SentrySDKInternal class]);
OCMStub([(Class)sentrySDKMock options]).andReturn(sentryOptions);
#else
id sentrySDKMock = OCMClassMock([SentrySDK class]);
OCMStub([(Class)sentrySDKMock options]).andReturn(sentryOptions);
#endif

id sentryDependencyContainerMock = OCMClassMock([SentryDependencyContainer class]);
OCMStub(ClassMethod([sentryDependencyContainerMock sharedInstance]))
Expand Down
5 changes: 1 addition & 4 deletions packages/core/ios/RNSentry+fetchNativeStack.m
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,8 @@
- (NSDictionary *)fetchNativeStackFramesBy:(NSArray<NSNumber *> *)instructionsAddr
symbolicate:(SymbolicateCallbackType)symbolicate
{
#if CROSS_PLATFORM_TEST
BOOL shouldSymbolicateLocally = [SentrySDKInternal.options debug];
#else
BOOL shouldSymbolicateLocally = [SentrySDK.options debug];
#endif

NSString *appPackageName = [[NSBundle mainBundle] executablePath];

NSMutableSet<NSString *> *_Nonnull imagesAddrToRetrieveDebugMetaImages =
Expand Down
5 changes: 0 additions & 5 deletions packages/core/ios/RNSentry.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,7 @@ typedef int (*SymbolicateCallbackType)(const void *, Dl_info *);
@class SentryOptions;
@class SentryEvent;

#if CROSS_PLATFORM_TEST
@interface SentrySDKInternal : NSObject
#else
@interface
SentrySDK (Private)
#endif
@property (nonatomic, nullable, readonly, class) SentryOptions *options;
@end

Expand Down
Loading
Loading