Skip to content

Commit 1edbdfa

Browse files
feat: Allow setting native SDK name in manifest (#5027)
* Added native sdk name to manifest reader * Updated CHANGELOG.md * Update Changelog --------- Co-authored-by: Markus Hintersteiner <[email protected]>
1 parent a7a2837 commit 1edbdfa

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Features
6+
7+
- Added `io.sentry.ndk.sdk-name` Android manifest option to configure the native SDK's name ([#5027](https://github.com/getsentry/sentry-java/pull/5027))
8+
39
## 8.30.0
410

511
### Fixes

sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ final class ManifestMetadataReader {
3737
static final String AUTO_INIT = "io.sentry.auto-init";
3838
static final String NDK_ENABLE = "io.sentry.ndk.enable";
3939
static final String NDK_SCOPE_SYNC_ENABLE = "io.sentry.ndk.scope-sync.enable";
40+
static final String NDK_SDK_NAME = "io.sentry.ndk.sdk-name";
4041
static final String RELEASE = "io.sentry.release";
4142
static final String ENVIRONMENT = "io.sentry.environment";
4243
static final String SDK_NAME = "io.sentry.sdk.name";
@@ -252,6 +253,12 @@ static void applyMetadata(
252253
options.setEnableScopeSync(
253254
readBool(metadata, logger, NDK_SCOPE_SYNC_ENABLE, options.isEnableScopeSync()));
254255

256+
final @Nullable String nativeSdkName =
257+
readString(metadata, logger, NDK_SDK_NAME, options.getNativeSdkName());
258+
if (nativeSdkName != null) {
259+
options.setNativeSdkName(nativeSdkName);
260+
}
261+
255262
options.setRelease(readString(metadata, logger, RELEASE, options.getRelease()));
256263

257264
options.setEnvironment(readString(metadata, logger, ENVIRONMENT, options.getEnvironment()));

sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,32 @@ class ManifestMetadataReaderTest {
646646
assertTrue(fixture.options.isEnableScopeSync)
647647
}
648648

649+
@Test
650+
fun `applyMetadata reads nativeSdkName to options`() {
651+
// Arrange
652+
val expectedValue = "sentry.native.android.unity"
653+
val bundle = bundleOf(ManifestMetadataReader.NDK_SDK_NAME to expectedValue)
654+
val context = fixture.getContext(metaData = bundle)
655+
656+
// Act
657+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
658+
659+
// Assert
660+
assertEquals(expectedValue, fixture.options.nativeSdkName)
661+
}
662+
663+
@Test
664+
fun `applyMetadata reads nativeSdkName and keeps default`() {
665+
// Arrange
666+
val context = fixture.getContext()
667+
668+
// Act
669+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
670+
671+
// Assert
672+
assertNull(fixture.options.nativeSdkName)
673+
}
674+
649675
@Test
650676
fun `applyMetadata reads tracesSampleRate from metadata`() {
651677
// Arrange

0 commit comments

Comments
 (0)