diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f9d61589e3..326d4f02ac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +- fix: SpanProtocol add setData for Swift (#1305) + ## 7.2.7 - fix: Remove Trace Headers below iOS 14.0 (#1309) diff --git a/Sources/Sentry/Public/SentrySpanProtocol.h b/Sources/Sentry/Public/SentrySpanProtocol.h index cc3e400f409..bcee12b0e2c 100644 --- a/Sources/Sentry/Public/SentrySpanProtocol.h +++ b/Sources/Sentry/Public/SentrySpanProtocol.h @@ -62,10 +62,17 @@ NS_SWIFT_NAME(Span) NS_SWIFT_NAME(startChild(operation:description:)); /** - * Sets an extra. + * Sets a value to data. */ - (void)setDataValue:(nullable id)value - forKey:(NSString *)key NS_SWIFT_NAME(setExtra(value:key:)); + forKey:(NSString *)key NS_SWIFT_NAME(setData(value:key:)); + +/** + * Use setDataValue instead. This method calls setDataValue, was added by mistake, and will be + * deprecated in a future version. + */ +- (void)setExtraValue:(nullable id)value + forKey:(NSString *)key NS_SWIFT_NAME(setExtra(value:key:)); /** * Removes a data value. diff --git a/Sources/Sentry/SentrySpan.m b/Sources/Sentry/SentrySpan.m index c59c0f7fd89..0449b77c56f 100644 --- a/Sources/Sentry/SentrySpan.m +++ b/Sources/Sentry/SentrySpan.m @@ -57,6 +57,11 @@ - (void)setDataValue:(nullable id)value forKey:(NSString *)key } } +- (void)setExtraValue:(nullable id)value forKey:(NSString *)key +{ + [self setDataValue:value forKey:key]; +} + - (void)removeDataForKey:(NSString *)key { @synchronized(_extras) { diff --git a/Sources/Sentry/SentryTracer.m b/Sources/Sentry/SentryTracer.m index 379a1ee4f81..e3265f94964 100644 --- a/Sources/Sentry/SentryTracer.m +++ b/Sources/Sentry/SentryTracer.m @@ -202,6 +202,11 @@ - (void)setDataValue:(id)value forKey:(NSString *)key [self.rootSpan setDataValue:value forKey:key]; } +- (void)setExtraValue:(nullable id)value forKey:(NSString *)key +{ + [self setDataValue:value forKey:key]; +} + - (void)removeDataForKey:(NSString *)key { [self.rootSpan removeDataForKey:key]; diff --git a/Tests/SentryTests/Performance/SentryTracerTests.swift b/Tests/SentryTests/Performance/SentryTracerTests.swift index a95c7e79056..cec8427576d 100644 --- a/Tests/SentryTests/Performance/SentryTracerTests.swift +++ b/Tests/SentryTests/Performance/SentryTracerTests.swift @@ -353,6 +353,13 @@ class SentryTracerTests: XCTestCase { } #endif + func testSetExtra_ForwardsToSetData() { + let sut = fixture.getSut() + sut.setExtra(value: 0, key: "key") + + XCTAssertEqual(["key": 0], sut.data as! [String: Int]) + } + private func getSerializedTransaction() -> [String: Any] { guard let transaction = fixture.hub.capturedEventsWithScopes.first?.event else { fatalError("Event must not be nil.") diff --git a/Tests/SentryTests/SentrySpanTests.swift b/Tests/SentryTests/SentrySpanTests.swift index 3e36fb30d30..7a7cae9aba5 100644 --- a/Tests/SentryTests/SentrySpanTests.swift +++ b/Tests/SentryTests/SentrySpanTests.swift @@ -217,6 +217,13 @@ class SentrySpanTests: XCTestCase { XCTAssertEqual(header.value(), "\(span.context.traceId)-\(span.context.spanId)") } + func testSetExtra_ForwardsToSetData() { + let sut = SentrySpan(context: SpanContext(operation: "test")) + sut.setExtra(value: 0, key: "key") + + XCTAssertEqual(["key": 0], sut.data as! [String: Int]) + } + @available(tvOS 10.0, *) @available(OSX 10.12, *) @available(iOS 10.0, *)