Skip to content

Commit 444d826

Browse files
authored
Merge pull request #1744 from bugsnag/release-v6.32.1
Release v6.32.1
2 parents fe54a8f + 4da533b commit 444d826

File tree

22 files changed

+108
-31
lines changed

22 files changed

+108
-31
lines changed

.buildkite/pipeline.full.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ steps:
165165
- xcframework_cocoa_fixture
166166
timeout_in_minutes: 10
167167
agents:
168-
queue: opensource-mac-cocoa-10.13
168+
queue: macos-10.13
169169
plugins:
170170
artifacts#v1.9.3:
171171
download: "features/fixtures/macos/output/macOSTestAppXcFramework.zip"
@@ -795,7 +795,7 @@ steps:
795795
- cocoa_fixture
796796
timeout_in_minutes: 60
797797
agents:
798-
queue: opensource-mac-cocoa-10.14
798+
queue: macos-10.14
799799
plugins:
800800
artifacts#v1.9.3:
801801
download: ["features/fixtures/macos/output/macOSTestApp_Release.zip"]
@@ -812,7 +812,7 @@ steps:
812812
- cocoa_fixture
813813
timeout_in_minutes: 60
814814
agents:
815-
queue: opensource-mac-cocoa-10.13
815+
queue: macos-10.13
816816
plugins:
817817
artifacts#v1.9.3:
818818
download: ["features/fixtures/macos/output/macOSTestApp_Release.zip"]

.buildkite/pipeline.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ steps:
113113
- label: macOS 10.14 unit tests
114114
timeout_in_minutes: 10
115115
agents:
116-
queue: opensource-mac-cocoa-10.14
116+
queue: macos-10.14
117117
commands:
118118
- ./scripts/run-unit-tests.sh PLATFORM=macOS
119119
artifact_paths:
@@ -122,7 +122,7 @@ steps:
122122
- label: macOS 10.13 unit tests
123123
timeout_in_minutes: 10
124124
agents:
125-
queue: opensource-mac-cocoa-10.13
125+
queue: macos-10.13
126126
commands:
127127
- ./scripts/run-unit-tests.sh PLATFORM=macOS
128128
artifact_paths:
@@ -329,7 +329,7 @@ steps:
329329
- cocoa_fixture
330330
timeout_in_minutes: 10
331331
agents:
332-
queue: opensource-mac-cocoa-10.14
332+
queue: macos-10.14
333333
plugins:
334334
artifacts#v1.5.0:
335335
download: "features/fixtures/macos/output/macOSTestApp_Release.zip"
@@ -348,7 +348,7 @@ steps:
348348
- cocoa_fixture
349349
timeout_in_minutes: 10
350350
agents:
351-
queue: opensource-mac-cocoa-10.13
351+
queue: macos-10.13
352352
plugins:
353353
artifacts#v1.5.0:
354354
download: "features/fixtures/macos/output/macOSTestApp_Release.zip"
@@ -752,7 +752,7 @@ steps:
752752
- cocoa_fixture
753753
timeout_in_minutes: 10
754754
agents:
755-
queue: opensource-mac-cocoa-10.13
755+
queue: macos-10.13
756756
plugins:
757757
artifacts#v1.5.0:
758758
download: "features/fixtures/macos/output/macOSTestApp_Debug.zip"

.github/workflows/pull_request.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
DEVELOPER_DIR: /Applications/Xcode_15.4.app
1414
steps:
1515
- name: Checkout pull request HEAD
16-
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
16+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1717
with:
1818
ref: ${{ github.event.pull_request.head.sha }}
1919
- name: Install dependencies
@@ -30,13 +30,13 @@ jobs:
3030
runs-on: macos-14
3131
steps:
3232
- name: Checkout target branch
33-
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
33+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3434
with:
3535
ref: ${{ github.base_ref }}
3636
- name: Build framework
3737
run: xcodebuild -project Bugsnag.xcodeproj -configuration Release -target Bugsnag-iOS -destination generic/platform=iOS -quiet clean build VALID_ARCHS=arm64 RUN_CLANG_STATIC_ANALYZER=NO && mv build build.base
3838
- name: Checkout pull request merge branch
39-
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
39+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4040
with:
4141
clean: false
4242
fetch-depth: 100

.github/workflows/scorecard.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ jobs:
3232

3333
steps:
3434
- name: "Checkout code"
35-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
35+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3636
with:
3737
persist-credentials: false
3838

3939
- name: "Run analysis"
40-
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
40+
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
4141
with:
4242
results_file: results.sarif
4343
results_format: sarif
@@ -59,7 +59,7 @@ jobs:
5959
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
6060
# format to the repository Actions tab.
6161
- name: "Upload artifact"
62-
uses: actions/upload-artifact@97a0fba1372883ab732affbe8f94b823f91727db # v3.pre.node20
62+
uses: actions/upload-artifact@c24449f33cd45d4826c6702db7e49f7cdb9b551d # v3.pre.node20
6363
with:
6464
name: SARIF file
6565
path: results.sarif

.github/workflows/update_docs.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ jobs:
99
runs-on: macos-latest
1010
steps:
1111
- name: Checkout bugsnag-cocoa
12-
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
12+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1313

1414
- name: Checkout docs branch
15-
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
15+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1616
with:
1717
ref: gh-pages
1818
path: docs

.jazzy.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ author_url: "https://www.bugsnag.com"
22
author: "Bugsnag Inc"
33
clean: false # avoid deleting docs/.git
44
framework_root: "Bugsnag"
5-
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.32.0/Bugsnag"
5+
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.32.1/Bugsnag"
66
github_url: "https://github.com/bugsnag/bugsnag-cocoa"
77
hide_documentation_coverage: true
88
module: "Bugsnag"
9-
module_version: "6.32.0"
9+
module_version: "6.32.1"
1010
objc: true
1111
output: "docs"
1212
readme: "README.md"

Bugsnag.podspec.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Bugsnag",
3-
"version": "6.32.0",
3+
"version": "6.32.1",
44
"summary": "The Bugsnag crash reporting framework for Apple platforms.",
55
"homepage": "https://bugsnag.com",
66
"license": "MIT",
@@ -9,7 +9,7 @@
99
},
1010
"source": {
1111
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
12-
"tag": "v6.32.0"
12+
"tag": "v6.32.1"
1313
},
1414
"ios": {
1515
"frameworks": [

Bugsnag/FeatureFlags/BSGAtomicFeatureFlagStore.m

+7
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@
2828
@implementation BSGAtomicFeatureFlagStore
2929

3030
+ (instancetype)store {
31+
static dispatch_once_t onceToken;
32+
dispatch_once(&onceToken, ^{
33+
nameToFlag = [NSMutableDictionary dictionary];
34+
});
3135
return [self new];
3236
}
3337

@@ -102,6 +106,7 @@ - (void)_addFeatureFlag:(nonnull NSString *)name withVariant:(nullable NSString
102106
[self _awaitAtomicFeatureFlagsLockIfNeeded];
103107
newItem->previous = tail;
104108
atomic_store(&g_feature_flags_tail, newItem);
109+
nameToFlag[name] = [NSValue valueWithPointer:newItem];
105110
}
106111

107112
- (NSData *)_dataForFeatureFlagWithName:(nonnull NSString *)name variant:(nullable NSString *)variant {
@@ -132,6 +137,7 @@ - (void)_removeFeatureFlagWithName:(NSString *)name {
132137
atomic_store(&g_feature_flags_tail, flag->previous);
133138
}
134139
free(flag);
140+
nameToFlag[name] = nil;
135141
}
136142
}
137143

@@ -144,6 +150,7 @@ - (void)_clearAll {
144150
item = next;
145151
}
146152
atomic_store(&g_feature_flags_tail, NULL);
153+
nameToFlag = [NSMutableDictionary dictionary];
147154
}
148155

149156
@end

Bugsnag/Payload/BugsnagNotifier.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ - (instancetype)init {
2323
#else
2424
_name = @"Bugsnag Objective-C";
2525
#endif
26-
_version = @"6.32.0";
26+
_version = @"6.32.1";
2727
_url = @"https://github.com/bugsnag/bugsnag-cocoa";
2828
_dependencies = @[];
2929
}

BugsnagNetworkRequestPlugin.podspec.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"name": "BugsnagNetworkRequestPlugin",
3-
"version": "6.32.0",
3+
"version": "6.32.1",
44
"summary": "Network request monitoring support for Bugsnag.",
55
"homepage": "https://bugsnag.com",
66
"license": "MIT",
77
"authors": {
88
"Bugsnag": "[email protected]"
99
},
10-
"readme": "https://raw.githubusercontent.com/bugsnag/bugsnag-cocoa/v6.32.0/BugsnagNetworkRequestPlugin/README.md",
10+
"readme": "https://raw.githubusercontent.com/bugsnag/bugsnag-cocoa/v6.32.1/BugsnagNetworkRequestPlugin/README.md",
1111
"source": {
1212
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
13-
"tag": "v6.32.0"
13+
"tag": "v6.32.1"
1414
},
1515
"dependencies": {
1616
"Bugsnag": "~> 6.13"

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
## 6.32.1 (2025-02-27)
5+
6+
### Bug Fixes
7+
8+
* Fixed the issue causing flags cleared by calling `+[Bugsnag clearFeatureFlagWithName:]` to appear in crash reports.
9+
[#1740](https://github.com/bugsnag/bugsnag-cocoa/pull/1740)
10+
411
## 6.32.0 (2025-02-11)
512

613
### Enhancements

Framework/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>6.32.0</string>
18+
<string>6.32.1</string>
1919
<key>CFBundleVersion</key>
2020
<string>1</string>
2121
</dict>

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
44
# portable for CI, e.g. a specific release. However, leaving it commented out would mean quicker CI.
55
gem 'bugsnag-maze-runner', '~> 9.0'
66
gem 'cocoapods'
7-
gem 'xcpretty', '~>0.3.0'
7+
gem 'xcpretty', '~>0.4.0'
88

99
# Use a specific branch
1010
#gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', branch: 'master'

Tests/BugsnagTests/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>6.32.0</string>
18+
<string>6.32.1</string>
1919
<key>CFBundleVersion</key>
2020
<string>1</string>
2121
</dict>

Tests/TestHost-iOS/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>6.32.0</string>
18+
<string>6.32.1</string>
1919
<key>CFBundleVersion</key>
2020
<string>1</string>
2121
<key>LSRequiresIPhoneOS</key>

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.32.0
1+
6.32.1

features/debug/unhandled_nsexception.feature

+22
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,25 @@ Feature: Uncaught NSExceptions are captured by Bugsnag
4141
And the event "severityReason.type" equals "unhandledException"
4242
And on iOS 12 and later, the event "threads.0.name" equals "メインスレッド"
4343
And on macOS 10.14 and later, the event "threads.0.name" equals "メインスレッド"
44+
45+
Scenario: Throw a NSException with feature flags set
46+
When I run "ObjCExceptionFeatureFlagsScenario" and relaunch the crashed app
47+
And I configure Bugsnag for "ObjCExceptionFeatureFlagsScenario"
48+
And I wait to receive an error
49+
Then the error is valid for the error reporting API
50+
And the exception "errorClass" equals "NSGenericException"
51+
And the "method" of stack frame 0 equals the platform-dependent string:
52+
| ios | <redacted> |
53+
| macos | __exceptionPreprocess |
54+
And the "method" of stack frame 1 equals "objc_exception_throw"
55+
And the "method" of stack frame 2 equals "-[ObjCExceptionFeatureFlagsScenario run]"
56+
And the error payload field "events.0.device.time" is a date
57+
And the event "severity" equals "error"
58+
And the event "unhandled" is true
59+
And the error payload field "events.0.featureFlags" is an array with 3 elements
60+
And the error payload field "events.0.featureFlags.0.featureFlag" equals "Feature Flag1"
61+
And the error payload field "events.0.featureFlags.0.variant" equals "Variant1"
62+
And the error payload field "events.0.featureFlags.1.featureFlag" equals "Feature Flag3"
63+
And the error payload field "events.0.featureFlags.1.variant" equals "Variant3"
64+
And the error payload field "events.0.featureFlags.2.featureFlag" equals "Feature Flag4"
65+
And the error payload field "events.0.featureFlags.2.variant" is null

features/fixtures/ios/iOSTestApp.xcodeproj/project.pbxproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
8AF8FCAC22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF8FCAB22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift */; };
122122
8AF8FCAE22BD23BA00A967CA /* HandledInternalNotifyScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF8FCAD22BD23BA00A967CA /* HandledInternalNotifyScenario.swift */; };
123123
967F6F1229B2236A0054EED8 /* InternalWorkingsScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 967F6F1129B2236A0054EED8 /* InternalWorkingsScenario.swift */; };
124+
96A25F322D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m in Sources */ = {isa = PBXBuildFile; fileRef = 96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */; };
124125
A1117E552535A59100014FDA /* OOMLoadScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E542535A59100014FDA /* OOMLoadScenario.swift */; };
125126
A1117E572535B22300014FDA /* OOMAutoDetectErrorsScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E562535B22300014FDA /* OOMAutoDetectErrorsScenario.swift */; };
126127
A1117E592535B29800014FDA /* OOMEnabledErrorTypesScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E582535B29800014FDA /* OOMEnabledErrorTypesScenario.swift */; };
@@ -328,6 +329,7 @@
328329
8AF8FCAB22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnhandledInternalNotifyScenario.swift; sourceTree = "<group>"; };
329330
8AF8FCAD22BD23BA00A967CA /* HandledInternalNotifyScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HandledInternalNotifyScenario.swift; sourceTree = "<group>"; };
330331
967F6F1129B2236A0054EED8 /* InternalWorkingsScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternalWorkingsScenario.swift; sourceTree = "<group>"; };
332+
96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCExceptionFeatureFlagsScenario.m; sourceTree = "<group>"; };
331333
A1117E542535A59100014FDA /* OOMLoadScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMLoadScenario.swift; sourceTree = "<group>"; };
332334
A1117E562535B22300014FDA /* OOMAutoDetectErrorsScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMAutoDetectErrorsScenario.swift; sourceTree = "<group>"; };
333335
A1117E582535B29800014FDA /* OOMEnabledErrorTypesScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMEnabledErrorTypesScenario.swift; sourceTree = "<group>"; };
@@ -545,6 +547,7 @@
545547
8A096DFB27C7E77600DB6ECC /* CxxBareThrowScenario.mm */,
546548
010BAAFA2833CE570003FF36 /* CxxExceptionOverrideScenario.mm */,
547549
F429550B682F8F9677305881 /* CxxExceptionScenario.mm */,
550+
09F025162BAD7B04007D9F73 /* DelayedNotifyErrorScenario.swift */,
548551
010BAAF42833CE570003FF36 /* DisableAllExceptManualExceptionsAndCrashScenario.m */,
549552
010BAB402833D2AA0003FF36 /* DisabledReleaseStageAutoSessionScenario.swift */,
550553
010BAB3C2833D2890003FF36 /* DisabledReleaseStageManualSessionScenario.swift */,
@@ -595,6 +598,7 @@
595598
E753F24524927409001FB671 /* NotifyCallbackCrashScenario.swift */,
596599
8A32DB8122424E3000EDD92F /* NSExceptionShiftScenario.m */,
597600
F4295E86DC0BE9DC731B0D1C /* NullPointerScenario.m */,
601+
96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */,
598602
010BAAF52833CE570003FF36 /* ObjCExceptionOverrideScenario.m */,
599603
F429521A8EEB435DCB6EACE1 /* ObjCExceptionScenario.m */,
600604
F429511ED32FC9FB46649CAE /* ObjCMsgSendScenario.m */,
@@ -680,7 +684,6 @@
680684
010BAAF22833CE570003FF36 /* UserPersistencePersistUserClientScenario.m */,
681685
010BAAF82833CE570003FF36 /* UserPersistencePersistUserScenario.m */,
682686
E700EE49247D1164008CFFB6 /* UserSessionOverrideScenario.swift */,
683-
09F025162BAD7B04007D9F73 /* DelayedNotifyErrorScenario.swift */,
684687
);
685688
name = scenarios;
686689
path = ../shared/scenarios;
@@ -948,6 +951,7 @@
948951
010BAB332833D1E80003FF36 /* UnhandledErrorInvalidReleaseStageScenario.swift in Sources */,
949952
E700EE4E247D1317008CFFB6 /* UserFromClientScenario.swift in Sources */,
950953
E7B79CDA24800A5D0039FB88 /* MetadataMergeScenario.swift in Sources */,
954+
96A25F322D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m in Sources */,
951955
E7B79CD8247FD7810039FB88 /* AutoContextNSExceptionScenario.swift in Sources */,
952956
010BAB3B2833D2280003FF36 /* UnhandledErrorValidReleaseStageScenario.swift in Sources */,
953957
010BDFB92885562D007025F9 /* ReportBackgroundAppHangScenario.swift in Sources */,

0 commit comments

Comments
 (0)