Skip to content

Commit 94273c3

Browse files
committed
Merge remote-tracking branch 'origin/v8.x' into philprime/v8-57-3-fixes
2 parents aa43aea + f73c5c8 commit 94273c3

File tree

8 files changed

+37
-7
lines changed

8 files changed

+37
-7
lines changed

.github/workflows/ui-tests-common.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ jobs:
126126
DEVICE_NAME: ${{ inputs.device }}
127127
OS_VERSION: ${{ inputs.test-destination-os }}
128128
run: ./scripts/ci-boot-simulator.sh --xcode "$XCODE_VERSION" --device "$DEVICE_NAME" --os-version "$OS_VERSION"
129-
130129
- run: make init-ci-build
131130
if: ${{ inputs.build_with_make }}
132131

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,13 @@
139139
- Move `enableDataSwizzling` from experimental options to top-level options (#6592). This option remains enabled by default.
140140
- Add `sentry.replay_id` attribute to logs ([#6515](https://github.com/getsentry/sentry-cocoa/pull/6515))
141141

142+
## 8.57.3
143+
144+
### Fixes
145+
146+
- Remove unnecesary dependency on `SentryCppHelper` to Sentry (#6754) (#6761)
147+
- Resolve SDK crash caused by UIPrintPanelViewController incorrectly casting to UISplitViewController (#6771)
148+
142149
## 8.57.2
143150

144151
### Fixes

Sources/Sentry/SentrySessionReplayIntegration.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ + (BOOL)shouldEnableForOptions:(SentryOptions *)options
6868
experimentalOptions:options.experimental];
6969
}
7070

71+
+ (BOOL)shouldEnableForOptions:(SentryOptions *)options
72+
{
73+
return [SentrySessionReplay
74+
shouldEnableSessionReplayWithEnvironmentChecker:SentryDependencyContainer.sharedInstance
75+
.sessionReplayEnvironmentChecker
76+
experimentalOptions:options.experimental];
77+
}
78+
7179
- (instancetype)init
7280
{
7381
self = [super init];

Sources/Swift/Helper/InfoPlist/SentryInfoPlistWrapper.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
final class SentryInfoPlistWrapper: SentryInfoPlistWrapperProvider {
1+
@objc @_spi(Private) public class SentryInfoPlistWrapper: NSObject, SentryInfoPlistWrapperProvider {
22

33
private let bundle: Bundle
44

5-
public init(bundle: Bundle = Bundle.main) {
5+
public override init() {
66
// We can not use defaults in the initializer because this class is used from Objective-C
7+
self.bundle = Bundle.main
8+
super.init()
9+
}
10+
11+
public init(bundle: Bundle) {
712
self.bundle = bundle
13+
super.init()
814
}
915

1016
// MARK: - Bridge to ObjC

Sources/Swift/Helper/InfoPlist/SentryInfoPlistWrapperProvider.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
protocol SentryInfoPlistWrapperProvider {
1+
@_spi(Private) @objc public protocol SentryInfoPlistWrapperProvider {
22
/**
33
* Retrieves a value from the app's `Info.plist` file for the given key and trys to cast it to a ``String``.
44
*

Sources/Swift/Helper/SentryApplicationExtensions.swift

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,18 @@ extension SentryApplication {
134134
return nil
135135
}
136136
}
137+
137138
if let splitViewController = vc as? UISplitViewController {
138-
if splitViewController.viewControllers.count > 0 {
139+
// We encountered a case where the private class `UIPrintPanelViewController` overrides the `isKindOfClass:` method and wrongfully
140+
// allows casting to `UISplitViewController`, while not actually being a subclass:
141+
//
142+
// -[UIPrintPanelViewController viewControllers]: unrecognized selector sent to instance 0x124f45e00
143+
//
144+
// Check if the selector exists as a double-check mechanism
145+
// See: https://github.com/getsentry/sentry-cocoa/issues/6725
146+
if !splitViewController.responds(to: NSSelectorFromString("viewControllers")) {
147+
SentrySDKLog.warning("Failed to get viewControllers from UISplitViewController. This is a known bug in iOS 26.1")
148+
} else if splitViewController.viewControllers.count > 0 {
139149
return splitViewController.viewControllers
140150
}
141151
}

Sources/Swift/Integrations/SessionReplay/SentrySessionReplayEnvironmentChecker.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
private let infoPlistWrapper: SentryInfoPlistWrapperProvider
1414

15-
init(infoPlistWrapper: SentryInfoPlistWrapperProvider) {
15+
@objc public init(infoPlistWrapper: SentryInfoPlistWrapperProvider) {
1616
self.infoPlistWrapper = infoPlistWrapper
1717
super.init()
1818
}

develop-docs/DECISIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ Contributors: @philipphofmann, @philprime, @kahest, @noahsmartin, @itaybre
449449

450450
As of Oct 1st 2025, the [main branch](https://github.com/getsentry/sentry-cocoa/tree/main) is for v9 and the branch [v8.x](https://github.com/getsentry/sentry-cocoa/tree/v8.x) is for v8.
451451

452-
To continue supporting users on version 8, we have created a dedicated v8 branch. This is the first time in the SDKs history that weve maintained a legacy branch. Since v8 was released over two years ago, and with new features like Session Replay shipped this year, we know some important customers still require bugfixes on v8 before moving to v9. Maintaining a separate branch allows us to deliver those fixes without complicating the v9 release process.
452+
To continue supporting users on version 8, we have created a dedicated v8 branch. This is the first time in the SDK's history that we've maintained a legacy branch. Since v8 was released over two years ago, and with new features like Session Replay shipped this year, we know some important customers still require bugfixes on v8 before moving to v9. Maintaining a separate branch allows us to deliver those fixes without complicating the v9 release process.
453453

454454
## Remove iOS 16 support
455455

0 commit comments

Comments
 (0)