diff --git a/CHANGELOG.md b/CHANGELOG.md index 897e053bbe8..a33753a3b31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixes - Ensure the current GPU frame rate is always reported for concurrent transaction profiling metrics (#2929) +- Possible crash in Core Data tracking (#2865) ## 8.5.0 diff --git a/Sources/Sentry/SentryCoreDataTracker.m b/Sources/Sentry/SentryCoreDataTracker.m index 0d3ee19f749..101ee40ae82 100644 --- a/Sources/Sentry/SentryCoreDataTracker.m +++ b/Sources/Sentry/SentryCoreDataTracker.m @@ -9,6 +9,7 @@ #import "SentrySDK+Private.h" #import "SentryScope+Private.h" #import "SentrySpanProtocol.h" +@import SentryPrivate; #import "SentryStacktrace.h" #import "SentryThreadInspector.h" @@ -172,8 +173,9 @@ - (NSString *)descriptionForOperations: { NSMutableDictionary *result = [NSMutableDictionary new]; - for (NSManagedObject *item in entities) { - NSString *cl = item.entity.name; + for (id item in entities) { + NSString *cl + = ((NSManagedObject *)item).entity.name ?: [SwiftDescriptor getObjectClassName:item]; NSNumber *count = result[cl]; result[cl] = [NSNumber numberWithInt:count.intValue + 1]; }