Skip to content

Commit 8511692

Browse files
committed
Merge branch 'master' into feat/1777-no-session-update-for-dropped-events
* master: feat: Store breadcrumbs to disk for OOM events (#2347) Report pre-warmed app starts (#1969) fix: Too long flush duration (#2370) release: 7.30.2 fix: profile payload issues (#2375)
2 parents 0bb922c + 46deabf commit 8511692

File tree

51 files changed

+1291
-290
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1291
-290
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@
22

33
## Unreleased
44

5+
### Features
6+
7+
- Store breadcrumbs to disk for OOM events (#2347)
8+
- Report pre-warmed app starts (#1969)
9+
10+
### Fixes
11+
12+
- Too long flush duration (#2370)
13+
14+
## 7.30.2
15+
516
### Fixes
617

718
- Fix issue with invalid profiles uploading (#2358 and #2359)
819
- Call UIDevice methods on the main thread (#2369)
920
- Don't increase session's error count for dropped events (#2374)
21+
- Avoid sending profiles with 0 samples or incorrectly deduplicated backtrace elements (#2375)
1022

1123
## 7.30.0
1224

Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,7 @@
10961096
"$(inherited)",
10971097
"@executable_path/Frameworks",
10981098
);
1099-
MARKETING_VERSION = 7.30.0;
1099+
MARKETING_VERSION = 7.30.2;
11001100
PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift";
11011101
PRODUCT_NAME = "$(TARGET_NAME)";
11021102
PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift";
@@ -1125,7 +1125,7 @@
11251125
"$(inherited)",
11261126
"@executable_path/Frameworks",
11271127
);
1128-
MARKETING_VERSION = 7.30.0;
1128+
MARKETING_VERSION = 7.30.2;
11291129
PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift";
11301130
PRODUCT_NAME = "$(TARGET_NAME)";
11311131
PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift";
@@ -1770,7 +1770,7 @@
17701770
"$(inherited)",
17711771
"@executable_path/Frameworks",
17721772
);
1773-
MARKETING_VERSION = 7.30.0;
1773+
MARKETING_VERSION = 7.30.2;
17741774
PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip";
17751775
PRODUCT_NAME = "$(TARGET_NAME)";
17761776
PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift.Clip";
@@ -1805,7 +1805,7 @@
18051805
"$(inherited)",
18061806
"@executable_path/Frameworks",
18071807
);
1808-
MARKETING_VERSION = 7.30.0;
1808+
MARKETING_VERSION = 7.30.2;
18091809
PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip";
18101810
PRODUCT_NAME = "$(TARGET_NAME)";
18111811
PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift.Clip";

Samples/iOS-Swift/iOS-Swift/AppDelegate.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
3636
// the benchmark test starts and stops a custom transaction using a UIButton, and automatic user interaction tracing stops the transaction that begins with that button press after the idle timeout elapses, stopping the profiler (only one profiler runs regardless of the number of concurrent transactions)
3737
options.enableUserInteractionTracing = !isBenchmarking
3838
options.enableAutoPerformanceTracking = !isBenchmarking
39+
options.enablePreWarmedAppStartTracking = !isBenchmarking
3940

4041
// because we run CPU for 15 seconds at full throttle, we trigger ANR issues being sent. disable such during benchmarks.
4142
options.enableAppHangTracking = !isBenchmarking

Sentry.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "Sentry"
3-
s.version = "7.30.0"
3+
s.version = "7.30.2"
44
s.summary = "Sentry client for cocoa"
55
s.homepage = "https://github.com/getsentry/sentry-cocoa"
66
s.license = "mit"

Sentry.xcodeproj/project.pbxproj

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
0A1B497328E597DD00D7BFA3 /* TestLogOutput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A1B497228E597DD00D7BFA3 /* TestLogOutput.swift */; };
4141
0A1C3592287D7107007D01E3 /* SentryMetaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A1C3591287D7107007D01E3 /* SentryMetaTests.swift */; };
4242
0A2690B72885C2E000E4432D /* TestSentryPermissionsObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AABE2EF2885C2120057ED69 /* TestSentryPermissionsObserver.swift */; };
43+
0A2D7BBA29152CBF008727AF /* SentryOutOfMemoryScopeObserverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D7BB929152CBF008727AF /* SentryOutOfMemoryScopeObserverTests.swift */; };
4344
0A283E79291A67E000EF4126 /* SentryUIDeviceWrapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A283E78291A67E000EF4126 /* SentryUIDeviceWrapperTests.swift */; };
4445
0A2D8D5B289815C0008720F6 /* SentryBaseIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D8D5A289815C0008720F6 /* SentryBaseIntegration.m */; };
4546
0A2D8D5D289815EB008720F6 /* SentryBaseIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A2D8D5C289815EB008720F6 /* SentryBaseIntegration.h */; };
@@ -52,6 +53,8 @@
5253
0A5370A128A3EC2400B2DCDE /* SentryViewHierarchyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A5370A028A3EC2400B2DCDE /* SentryViewHierarchyTests.swift */; };
5354
0A56DA5F28ABA01B00C400D5 /* SentryTransactionContext+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A56DA5E28ABA01B00C400D5 /* SentryTransactionContext+Private.h */; };
5455
0A6EEADD28A657970076B469 /* UIViewRecursiveDescriptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A6EEADC28A657970076B469 /* UIViewRecursiveDescriptionTests.swift */; };
56+
0A80E433291017C300095219 /* SentryOutOfMemoryScopeObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A80E432291017C300095219 /* SentryOutOfMemoryScopeObserver.m */; };
57+
0A80E435291017D500095219 /* SentryOutOfMemoryScopeObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A80E434291017D500095219 /* SentryOutOfMemoryScopeObserver.h */; };
5558
0A8F0A392886CC70000B15F6 /* SentryPermissionsObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AABE2EE288592750057ED69 /* SentryPermissionsObserver.h */; };
5659
0A94158228F6C4C2006A5DD1 /* SentryAppStateManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A94158128F6C4C2006A5DD1 /* SentryAppStateManagerTests.swift */; };
5760
0A9415BA28F96CAC006A5DD1 /* TestSentryReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A9415B928F96CAC006A5DD1 /* TestSentryReachability.swift */; };
@@ -296,6 +299,9 @@
296299
7B0A542E2521C62400A71716 /* SentryFrameRemoverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0A542D2521C62400A71716 /* SentryFrameRemoverTests.swift */; };
297300
7B0A5452252311CE00A71716 /* SentryBreadcrumbTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0A5451252311CE00A71716 /* SentryBreadcrumbTests.swift */; };
298301
7B0A54562523178700A71716 /* SentryScopeSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0A54552523178700A71716 /* SentryScopeSwiftTests.swift */; };
302+
7B0DC72F288698F70039995F /* NSMutableDictionary+Sentry.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0DC72D288698F70039995F /* NSMutableDictionary+Sentry.h */; };
303+
7B0DC730288698F70039995F /* NSMutableDictionary+Sentry.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B0DC72E288698F70039995F /* NSMutableDictionary+Sentry.m */; };
304+
7B0DC73428869BF40039995F /* NSMutableDictionarySentryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0DC73328869BF40039995F /* NSMutableDictionarySentryTests.swift */; };
299305
7B127B0D27CF6F2300A71ED2 /* SentryANRTrackingIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B127B0C27CF6F2300A71ED2 /* SentryANRTrackingIntegration.h */; };
300306
7B127B0F27CF6F4700A71ED2 /* SentryANRTrackingIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B127B0E27CF6F4700A71ED2 /* SentryANRTrackingIntegration.m */; };
301307
7B14089624878F090035403D /* SentryCrashStackEntryMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B14089524878F090035403D /* SentryCrashStackEntryMapper.h */; };
@@ -767,6 +773,7 @@
767773
03F9D37B2819A65C00602916 /* SentryProfilerTests.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SentryProfilerTests.mm; sourceTree = "<group>"; };
768774
0A1B497228E597DD00D7BFA3 /* TestLogOutput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestLogOutput.swift; sourceTree = "<group>"; };
769775
0A1C3591287D7107007D01E3 /* SentryMetaTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryMetaTests.swift; sourceTree = "<group>"; };
776+
0A2D7BB929152CBF008727AF /* SentryOutOfMemoryScopeObserverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryOutOfMemoryScopeObserverTests.swift; sourceTree = "<group>"; };
770777
0A283E78291A67E000EF4126 /* SentryUIDeviceWrapperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryUIDeviceWrapperTests.swift; sourceTree = "<group>"; };
771778
0A2D8D5A289815C0008720F6 /* SentryBaseIntegration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryBaseIntegration.m; sourceTree = "<group>"; };
772779
0A2D8D5C289815EB008720F6 /* SentryBaseIntegration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryBaseIntegration.h; path = include/SentryBaseIntegration.h; sourceTree = "<group>"; };
@@ -779,6 +786,8 @@
779786
0A5370A028A3EC2400B2DCDE /* SentryViewHierarchyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryViewHierarchyTests.swift; sourceTree = "<group>"; };
780787
0A56DA5E28ABA01B00C400D5 /* SentryTransactionContext+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SentryTransactionContext+Private.h"; path = "include/SentryTransactionContext+Private.h"; sourceTree = "<group>"; };
781788
0A6EEADC28A657970076B469 /* UIViewRecursiveDescriptionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIViewRecursiveDescriptionTests.swift; sourceTree = "<group>"; };
789+
0A80E432291017C300095219 /* SentryOutOfMemoryScopeObserver.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryOutOfMemoryScopeObserver.m; sourceTree = "<group>"; };
790+
0A80E434291017D500095219 /* SentryOutOfMemoryScopeObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryOutOfMemoryScopeObserver.h; path = include/SentryOutOfMemoryScopeObserver.h; sourceTree = "<group>"; };
782791
0A94158128F6C4C2006A5DD1 /* SentryAppStateManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryAppStateManagerTests.swift; sourceTree = "<group>"; };
783792
0A9415B928F96CAC006A5DD1 /* TestSentryReachability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSentryReachability.swift; sourceTree = "<group>"; };
784793
0A9BF4E128A114940068D266 /* SentryViewHierarchyIntegration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryViewHierarchyIntegration.m; sourceTree = "<group>"; };
@@ -1034,6 +1043,9 @@
10341043
7B0A542D2521C62400A71716 /* SentryFrameRemoverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryFrameRemoverTests.swift; sourceTree = "<group>"; };
10351044
7B0A5451252311CE00A71716 /* SentryBreadcrumbTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryBreadcrumbTests.swift; sourceTree = "<group>"; };
10361045
7B0A54552523178700A71716 /* SentryScopeSwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryScopeSwiftTests.swift; sourceTree = "<group>"; };
1046+
7B0DC72D288698F70039995F /* NSMutableDictionary+Sentry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Sentry.h"; path = "include/NSMutableDictionary+Sentry.h"; sourceTree = "<group>"; };
1047+
7B0DC72E288698F70039995F /* NSMutableDictionary+Sentry.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+Sentry.m"; sourceTree = "<group>"; };
1048+
7B0DC73328869BF40039995F /* NSMutableDictionarySentryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSMutableDictionarySentryTests.swift; sourceTree = "<group>"; };
10371049
7B127B0C27CF6F2300A71ED2 /* SentryANRTrackingIntegration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryANRTrackingIntegration.h; path = include/SentryANRTrackingIntegration.h; sourceTree = "<group>"; };
10381050
7B127B0E27CF6F4700A71ED2 /* SentryANRTrackingIntegration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryANRTrackingIntegration.m; sourceTree = "<group>"; };
10391051
7B14089524878F090035403D /* SentryCrashStackEntryMapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryCrashStackEntryMapper.h; path = include/SentryCrashStackEntryMapper.h; sourceTree = "<group>"; };
@@ -1676,6 +1688,8 @@
16761688
63BE856F1ECEC6DE00DC44F5 /* NSDate+SentryExtras.m */,
16771689
63295AF31EF3C7DB002D4490 /* NSDictionary+SentrySanitize.h */,
16781690
63295AF41EF3C7DB002D4490 /* NSDictionary+SentrySanitize.m */,
1691+
7B0DC72D288698F70039995F /* NSMutableDictionary+Sentry.h */,
1692+
7B0DC72E288698F70039995F /* NSMutableDictionary+Sentry.m */,
16791693
861265F72404EC1500C4AFDE /* NSArray+SentrySanitize.h */,
16801694
861265F82404EC1500C4AFDE /* NSArray+SentrySanitize.m */,
16811695
7B6438A826A70F24000D0F65 /* UIViewController+Sentry.h */,
@@ -2327,6 +2341,7 @@
23272341
isa = PBXGroup;
23282342
children = (
23292343
7B6438A626A70DDB000D0F65 /* UIViewControllerSentryTests.swift */,
2344+
7B0DC73328869BF40039995F /* NSMutableDictionarySentryTests.swift */,
23302345
0A6EEADC28A657970076B469 /* UIViewRecursiveDescriptionTests.swift */,
23312346
);
23322347
path = Categories;
@@ -2494,6 +2509,8 @@
24942509
7B6C5F8626034395007F7DFF /* SentryOutOfMemoryLogic.m */,
24952510
7B98D7CA25FB64EC00C5A389 /* SentryOutOfMemoryTrackingIntegration.h */,
24962511
7B98D7CE25FB650F00C5A389 /* SentryOutOfMemoryTrackingIntegration.m */,
2512+
0A80E434291017D500095219 /* SentryOutOfMemoryScopeObserver.h */,
2513+
0A80E432291017C300095219 /* SentryOutOfMemoryScopeObserver.m */,
24972514
);
24982515
name = OutOfMemory;
24992516
sourceTree = "<group>";
@@ -2616,6 +2633,7 @@
26162633
children = (
26172634
7B98D7DF25FB73B900C5A389 /* SentryOutOfMemoryTrackerTests.swift */,
26182635
7BFE7A0927A1B6B000D2B66E /* SentryOutOfMemoryIntegrationTests.swift */,
2636+
0A2D7BB929152CBF008727AF /* SentryOutOfMemoryScopeObserverTests.swift */,
26192637
);
26202638
path = OutOfMemory;
26212639
sourceTree = "<group>";
@@ -3118,6 +3136,7 @@
31183136
D867063F27C3BC2400048851 /* SentryCoreDataTracker.h in Headers */,
31193137
7B9657252683104C00C66E25 /* NSData+Sentry.h in Headers */,
31203138
7B6C5EDA264E8D860010D138 /* SentryFramesTrackingIntegration.h in Headers */,
3139+
7B0DC72F288698F70039995F /* NSMutableDictionary+Sentry.h in Headers */,
31213140
63FE713920DA4C1100CDBAE8 /* SentryCrashMach.h in Headers */,
31223141
63EED6BE2237923600E02400 /* SentryOptions.h in Headers */,
31233142
7BD86EC5264A63F6005439DB /* SentrySysctl.h in Headers */,
@@ -3185,6 +3204,7 @@
31853204
7B42C48027E08F33009B58C2 /* SentryDependencyContainer.h in Headers */,
31863205
6334314120AD9AE40077E581 /* SentryMechanism.h in Headers */,
31873206
03F84D2827DD414C008FE43F /* SentryCPU.h in Headers */,
3207+
0A80E435291017D500095219 /* SentryOutOfMemoryScopeObserver.h in Headers */,
31883208
7B610D642512399600B0B5D9 /* SentryHub+Private.h in Headers */,
31893209
D8F6A24B2885515C00320515 /* SentryPredicateDescriptor.h in Headers */,
31903210
639FCF9C1EBC7F9500778193 /* SentryThread.h in Headers */,
@@ -3312,6 +3332,7 @@
33123332
7B3398652459C15200BD9C96 /* SentryEnvelopeRateLimit.m in Sources */,
33133333
0A2D8D9628997845008720F6 /* NSLocale+Sentry.m in Sources */,
33143334
A2475E1F25FB648B007D9080 /* fishhook.c in Sources */,
3335+
7B0DC730288698F70039995F /* NSMutableDictionary+Sentry.m in Sources */,
33153336
7BD4BD4527EB29F50071F4FF /* SentryClientReport.m in Sources */,
33163337
631E6D341EBC679C00712345 /* SentryQueueableRequestManager.m in Sources */,
33173338
7B8713B426415BAA006D6004 /* SentryAppStartTracker.m in Sources */,
@@ -3405,6 +3426,7 @@
34053426
84A8891D28DBD28900C51DFD /* SentryDevice.mm in Sources */,
34063427
7B56D73324616D9500B842DA /* SentryConcurrentRateLimitsDictionary.m in Sources */,
34073428
8ECC674825C23A20000E2BF6 /* SentryTransaction.m in Sources */,
3429+
0A80E433291017C300095219 /* SentryOutOfMemoryScopeObserver.m in Sources */,
34083430
7BECF42826145CD900D9826E /* SentryMechanismMeta.m in Sources */,
34093431
8E7C982F2693D56000E6336C /* SentryTraceHeader.m in Sources */,
34103432
63FE715F20DA4C1100CDBAE8 /* SentryCrashID.c in Sources */,
@@ -3682,6 +3704,7 @@
36823704
7B30B68226527C55006B2752 /* TestDisplayLinkWrapper.swift in Sources */,
36833705
7BB6550D253EEB3900887E87 /* SentryUserFeedbackTests.swift in Sources */,
36843706
7BBD18B7245180FF00427C76 /* SentryDsnTests.m in Sources */,
3707+
0A2D7BBA29152CBF008727AF /* SentryOutOfMemoryScopeObserverTests.swift in Sources */,
36853708
7BD4BD4B27EB2DC20071F4FF /* SentryDiscardedEventTests.swift in Sources */,
36863709
63FE721A20DA66EC00CDBAE8 /* SentryCrashSysCtl_Tests.m in Sources */,
36873710
7B88F30424BC8E6500ADF90A /* SentrySerializationTests.swift in Sources */,
@@ -3733,6 +3756,7 @@
37333756
7B965728268321CD00C66E25 /* SentryCrashScopeObserverTests.swift in Sources */,
37343757
7BD86ECB264A6DB5005439DB /* TestSysctl.swift in Sources */,
37353758
035E73CA27D57398005EEB11 /* SentryThreadHandleTests.mm in Sources */,
3759+
7B0DC73428869BF40039995F /* NSMutableDictionarySentryTests.swift in Sources */,
37363760
7B6ADFCF26A02CAE0076C206 /* SentryCrashReportTests.swift in Sources */,
37373761
D8B76B062808066D000A58C4 /* SentryScreenshotIntegrationTests.swift in Sources */,
37383762
7B8CA85726DD4E6200DD872C /* SentryNetworkTrackerIntegrationTests.swift in Sources */,

Sentry.xcodeproj/xcshareddata/xcschemes/Sentry.xcscheme

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,6 @@
6464
<Test
6565
Identifier = "SentryFileIOTrackingIntegrationTests/test_DataConsistency_readUrl_disabled()">
6666
</Test>
67-
<Test
68-
Identifier = "SentryHttpTransportTests/testFlush_CalledMultipleTimes_ImmediatelyReturnsFalse_disabled()">
69-
</Test>
70-
<Test
71-
Identifier = "SentryHttpTransportTests/testFlush_CalledSequentially_BlocksTwice_disabled()">
72-
</Test>
7367
<Test
7468
Identifier = "SentryNetworkTrackerIntegrationTests/testGetRequest_SpanCreatedAndBaggageHeaderAdded_disabled()">
7569
</Test>

Sources/Configuration/Sentry.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ MACH_O_TYPE = mh_dylib
2828
FRAMEWORK_VERSION = A
2929

3030
PRODUCT_NAME = Sentry
31-
CURRENT_PROJECT_VERSION = 7.30.0
31+
CURRENT_PROJECT_VERSION = 7.30.2
3232
INFOPLIST_FILE = Sources/Sentry/Info.plist
3333
PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry
3434
ALWAYS_SEARCH_USER_PATHS = NO
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#import "NSMutableDictionary+Sentry.h"
2+
3+
@implementation
4+
NSMutableDictionary (Sentry)
5+
6+
- (void)mergeEntriesFromDictionary:(NSDictionary *)otherDictionary
7+
{
8+
[otherDictionary enumerateKeysAndObjectsUsingBlock:^(id otherKey, id otherObj, BOOL *stop) {
9+
if ([otherObj isKindOfClass:NSDictionary.class] &&
10+
[self[otherKey] isKindOfClass:NSDictionary.class]) {
11+
NSMutableDictionary *mergedDict = ((NSDictionary *)self[otherKey]).mutableCopy;
12+
[mergedDict mergeEntriesFromDictionary:(NSDictionary *)otherObj];
13+
self[otherKey] = mergedDict;
14+
return;
15+
}
16+
17+
self[otherKey] = otherObj;
18+
}];
19+
}
20+
21+
@end

Sources/Sentry/Public/SentryAppStartMeasurement.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ SENTRY_NO_INIT
2727
* Initializes SentryAppStartMeasurement with the given parameters.
2828
*/
2929
- (instancetype)initWithType:(SentryAppStartType)type
30+
isPreWarmed:(BOOL)isPreWarmed
3031
appStartTimestamp:(NSDate *)appStartTimestamp
3132
duration:(NSTimeInterval)duration
3233
runtimeInitTimestamp:(NSDate *)runtimeInitTimestamp
@@ -38,14 +39,17 @@ SENTRY_NO_INIT
3839
*/
3940
@property (readonly, nonatomic, assign) SentryAppStartType type;
4041

42+
@property (readonly, nonatomic, assign) BOOL isPreWarmed;
43+
4144
/**
4245
* How long the app start took. From appStartTimestamp to when the SDK creates the
4346
* AppStartMeasurement, which is done when the OS posts UIWindowDidBecomeVisibleNotification.
4447
*/
4548
@property (readonly, nonatomic, assign) NSTimeInterval duration;
4649

4750
/**
48-
* The timestamp when the app started, which is the process start timestamp.
51+
* The timestamp when the app started, which is the process start timestamp and for prewarmed app
52+
* starts the moduleInitializationTimestamp.
4953
*/
5054
@property (readonly, nonatomic, strong) NSDate *appStartTimestamp;
5155

0 commit comments

Comments
 (0)