From bf1897538a7c480e8234fdcb77ebb387d62417a1 Mon Sep 17 00:00:00 2001 From: Noah Martin Date: Thu, 4 Dec 2025 16:27:50 +0100 Subject: [PATCH] fix: Development builds with prebuilt binary --- .../Monitors/SentryCrashMonitor_System.m | 5 ++++- .../Helper/SentryMobileProvisionParser.swift | 17 +++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.m b/Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.m index 7f6bb30fa97..c1d43c93892 100644 --- a/Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.m +++ b/Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.m @@ -469,8 +469,11 @@ return "debug"; } SentryMobileProvisionParser *parser = [[SentryMobileProvisionParser alloc] init]; + if ([[parser apsEnvironment] isEqualToString:@"development"] && [parser getTaskAllow]) { + return "debug"; + } if ([parser hasEmbeddedMobileProvisionProfile]) { - return [parser mobileProvisionProfileProvisionsAllDevices] ? "enterprise" : "adhoc"; + return [parser provisionsAllDevices] ? "enterprise" : "adhoc"; } if (isTestBuild()) { return "test"; diff --git a/Sources/Swift/Helper/SentryMobileProvisionParser.swift b/Sources/Swift/Helper/SentryMobileProvisionParser.swift index dc3e4e25b5f..3cfa0bfbeed 100644 --- a/Sources/Swift/Helper/SentryMobileProvisionParser.swift +++ b/Sources/Swift/Helper/SentryMobileProvisionParser.swift @@ -1,13 +1,11 @@ @objc @_spi(Private) -public class SentryMobileProvisionParser: NSObject { - private var provisionsAllDevices: Bool = false - private var embeddedProfilePath: String? - + +public final class SentryMobileProvisionParser: NSObject { // If the profile provisions all devices, it indicates Enterprise distribution - @objc - public var mobileProvisionProfileProvisionsAllDevices: Bool { - return provisionsAllDevices - } + @objc public private(set) var provisionsAllDevices: Bool = false + private var embeddedProfilePath: String? + @objc public private(set) var apsEnvironment: String? + @objc public private(set) var getTaskAllow: Bool = false // This convenience initializer exists so we can use it from ObjC. // Functions with Optional parameters (used for testing) are not available to ObjC @@ -58,6 +56,9 @@ public class SentryMobileProvisionParser: NSObject { let dict = obj as? [String: Any] else { return } + let entitlements = (dict["Entitlements"] as? Dictionary) + getTaskAllow = entitlements?["get-task-allow"] as? Int == 1 + apsEnvironment = entitlements?["aps-environment"] as? String provisionsAllDevices = dict["ProvisionsAllDevices"] as? Bool ?? false } }