Skip to content

Commit

Permalink
Merge pull request #1672 from bugsnag/release-v6.30.0
Browse files Browse the repository at this point in the history
Release v6.30.0
  • Loading branch information
kstenerud authored Jul 4, 2024
2 parents cd3a27c + ec66f70 commit e279fc6
Show file tree
Hide file tree
Showing 25 changed files with 181 additions and 108 deletions.
16 changes: 8 additions & 8 deletions .buildkite/pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -49,7 +49,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -78,7 +78,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand All @@ -105,7 +105,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand All @@ -131,7 +131,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -163,7 +163,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -193,7 +193,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -225,7 +225,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down
35 changes: 20 additions & 15 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,28 @@ steps:
# Build
#

- label: Static framework and Swift Package Manager builds
timeout_in_minutes: 10
agents:
queue: macos-14
env:
XCODE_VERSION: 15.3.0
commands:
- make build_xcframework
- make build_swift
- make build_ios_static
plugins:
- artifacts#v1.9.3:
upload: "build/xcframeworks/products/Bugsnag.xcframework"
compressed: xcframework.zip

- label: Build test fixtures
key: cocoa_fixture
timeout_in_minutes: 30
agents:
queue: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode-15.app
XCODE_VERSION: 15.3.0
artifact_paths:
- features/fixtures/ios/output/iOSTestApp.ipa
- features/fixtures/macos/output/macOSTestApp.zip
Expand All @@ -25,16 +40,6 @@ steps:
- bundle exec upload-app --farm=bb --app=./features/fixtures/ios/output/iOSTestApp.ipa --app-id-file=./features/fixtures/ios/output/ipa_url_bb.txt
- bundle exec upload-app --farm=bs --app=./features/fixtures/ios/output/iOSTestApp.ipa --app-id-file=./features/fixtures/ios/output/ipa_url_bs.txt

- label: Static framework and Swift Package Manager builds
timeout_in_minutes: 10
agents:
queue: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode-15.app
commands:
- make build_swift
- make build_ios_static

- label: Carthage
timeout_in_minutes: 15
agents:
Expand Down Expand Up @@ -446,7 +451,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -476,7 +481,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -506,7 +511,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down Expand Up @@ -536,7 +541,7 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.9.0:
artifacts#v1.9.3:
download: "features/fixtures/ios/output/ipa_url_bb.txt"
upload: "maze_output/failed/**/*"
docker-compose#v4.7.0:
Expand Down
4 changes: 2 additions & 2 deletions .jazzy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ author_url: "https://www.bugsnag.com"
author: "Bugsnag Inc"
clean: false # avoid deleting docs/.git
framework_root: "Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.29.0/Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.30.0/Bugsnag"
github_url: "https://github.com/bugsnag/bugsnag-cocoa"
hide_documentation_coverage: true
module: "Bugsnag"
module_version: "6.29.0"
module_version: "6.30.0"
objc: true
output: "docs"
readme: "README.md"
Expand Down
4 changes: 2 additions & 2 deletions Bugsnag.podspec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Bugsnag",
"version": "6.29.0",
"version": "6.30.0",
"summary": "The Bugsnag crash reporting framework for Apple platforms.",
"homepage": "https://bugsnag.com",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
},
"source": {
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
"tag": "v6.29.0"
"tag": "v6.30.0"
},
"ios": {
"frameworks": [
Expand Down
14 changes: 6 additions & 8 deletions Bugsnag.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -737,10 +737,10 @@
09E312F42BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E312EE2BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m */; };
09E312F52BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E312EE2BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m */; };
09E312F62BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E312EE2BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m */; };
09E312F82BF248E70081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; settings = {ATTRIBUTES = (Public, ); }; };
09E312F92BF248E80081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; settings = {ATTRIBUTES = (Public, ); }; };
09E312FA2BF248E90081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; settings = {ATTRIBUTES = (Public, ); }; };
09E312FB2BF248E90081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; settings = {ATTRIBUTES = (Public, ); }; };
09E312F82BF248E70081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; };
09E312F92BF248E80081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; };
09E312FA2BF248E90081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; };
09E312FB2BF248E90081F219 /* BugsnagCorrelation.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; };
09E312FC2BF2492C0081F219 /* BugsnagCorrelation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */; };
09E312FE2BF34D6D0081F219 /* BugsnagCorrelation.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E312FD2BF34D6D0081F219 /* BugsnagCorrelation.m */; };
09E312FF2BF34D6D0081F219 /* BugsnagCorrelation.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E312FD2BF34D6D0081F219 /* BugsnagCorrelation.m */; };
Expand Down Expand Up @@ -1577,9 +1577,8 @@
093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = BSGTestCase.mm; sourceTree = "<group>"; };
09E312ED2BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagCocoaPerformanceFromBugsnagCocoa.h; sourceTree = "<group>"; };
09E312EE2BF230660081F219 /* BugsnagCocoaPerformanceFromBugsnagCocoa.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BugsnagCocoaPerformanceFromBugsnagCocoa.m; sourceTree = "<group>"; };
09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagCorrelation.h; sourceTree = "<group>"; };
09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BugsnagCorrelation.h; path = ../include/Bugsnag/BugsnagCorrelation.h; sourceTree = "<group>"; };
09E312FD2BF34D6D0081F219 /* BugsnagCorrelation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BugsnagCorrelation.m; sourceTree = "<group>"; };
09E313022BF34E5E0081F219 /* BugsnagCorrelation+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BugsnagCorrelation+Private.h"; sourceTree = "<group>"; };
09E3132E2BF3867C0081F219 /* BugsnagPerformanceBridgeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BugsnagPerformanceBridgeTests.m; sourceTree = "<group>"; };
3A700A8024A63A8E0068CD1B /* BugsnagThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagThread.h; sourceTree = "<group>"; };
3A700A8124A63A8E0068CD1B /* BugsnagSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagSession.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2178,8 +2177,8 @@
0126DED7257A87F40031A70C /* BugsnagAppWithState+Private.h */,
0089684B2486DA9400DC48C2 /* BugsnagBreadcrumb.m */,
0126DEDF257A89490031A70C /* BugsnagBreadcrumb+Private.h */,
09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */,
09E312FD2BF34D6D0081F219 /* BugsnagCorrelation.m */,
09E313022BF34E5E0081F219 /* BugsnagCorrelation+Private.h */,
008968482486DA9400DC48C2 /* BugsnagDevice.m */,
0126DEE7257A8B0F0031A70C /* BugsnagDevice+Private.h */,
0089685A2486DA9500DC48C2 /* BugsnagDeviceWithState.m */,
Expand Down Expand Up @@ -2261,7 +2260,6 @@
3A700A8524A63A8E0068CD1B /* BugsnagBreadcrumb.h */,
3A700A8924A63A8E0068CD1B /* BugsnagClient.h */,
3A700A8D24A63A8E0068CD1B /* BugsnagConfiguration.h */,
09E312F72BF248DD0081F219 /* BugsnagCorrelation.h */,
01C41A27288FD3EA00BAE31A /* BugsnagDefines.h */,
3A700A8F24A63A8E0068CD1B /* BugsnagDevice.h */,
3A700A9224A63A8E0068CD1B /* BugsnagDeviceWithState.h */,
Expand Down
20 changes: 16 additions & 4 deletions Bugsnag/Bugsnag.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#import "BugsnagClient+Private.h"
#import "BugsnagInternals.h"
#import "BugsnagLogger.h"
#import "BSGUtils.h"

static BugsnagClient *bsg_g_bugsnag_client = NULL;

Expand Down Expand Up @@ -98,27 +99,38 @@ + (void)markLaunchCompleted {
}
}

// Here, we pass all public notify APIs to a common handling method
// (notifyErrorOrException) and then prevent the compiler from performing
// any inlining or outlining that would change the number of Bugsnag handler
// methods on the stack and break our stack stripping.
// Note: Each BSGPreventInlining call site within a module MUST pass a different
// string to prevent outlining!

+ (void)notify:(NSException *)exception {
if ([self bugsnagReadyForInternalCalls]) {
[self.client notify:exception];
BSGPreventInlining(@"Prevent");
[self.client notifyErrorOrException:exception stackStripDepth:2 block:nil];
}
}

+ (void)notify:(NSException *)exception block:(BugsnagOnErrorBlock)block {
if ([self bugsnagReadyForInternalCalls]) {
[self.client notify:exception block:block];
BSGPreventInlining(@"inlining");
[self.client notifyErrorOrException:exception stackStripDepth:2 block:block];
}
}

+ (void)notifyError:(NSError *)error {
if ([self bugsnagReadyForInternalCalls]) {
[self.client notifyError:error];
BSGPreventInlining(@"and");
[self.client notifyErrorOrException:error stackStripDepth:2 block:nil];
}
}

+ (void)notifyError:(NSError *)error block:(BugsnagOnErrorBlock)block {
if ([self bugsnagReadyForInternalCalls]) {
[self.client notifyError:error block:block];
BSGPreventInlining(@"outlining");
[self.client notifyErrorOrException:error stackStripDepth:2 block:block];
}
}

Expand Down
20 changes: 20 additions & 0 deletions Bugsnag/Client/BugsnagClient+Private.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,26 @@ BSG_OBJC_DIRECT_MEMBERS

- (void)start;

/**
* Common entry point to notify an error or an exception.
* Bugsnag components MUST NOT call the regular notify methods in this class. ALWAYS call
* this method instead.
*
* You must provide the number of stack trace entries to strip from the top of the stack
* (INCLUDING this method) so that our own reporting methods don't show up in the reported stack trace.
*
* Example: stackStripDepth = 2 would strip the top two entries, which we would expect to be
* 1. +[Bugsnag notifyError:block:]
* 2. -[BugsnagClient notifyErrorOrException:stackStripDepth:block:]
*
* @param errorOrException the error or exception to report.
* @param stackStripDepth The number of stack trace entries to strip from the top of the stack.
* @param block Called after reporting.
*/
- (void)notifyErrorOrException:(id)errorOrException
stackStripDepth:(NSUInteger)stackStripDepth
block:(_Nullable BugsnagOnErrorBlock)block;

@end

NS_ASSUME_NONNULL_END
Loading

0 comments on commit e279fc6

Please sign in to comment.