Skip to content

Commit c483477

Browse files
authored
Fix compiler checks for xcode 13 (#8679)
1 parent a5fbb0a commit c483477

16 files changed

+57
-66
lines changed

Crashlytics/Crashlytics/Controllers/FIRCLSMetricKitManager.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
#include <Availability.h>
1616
#import <Foundation/Foundation.h>
1717

18-
#if defined(__IPHONE_15_0)
19-
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
20-
#else
21-
#define CLS_METRICKIT_SUPPORTED 0
22-
#endif
18+
#import "Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h"
2319

2420
#if CLS_METRICKIT_SUPPORTED
2521
#import <MetricKit/MetricKit.h>
@@ -44,7 +40,6 @@ NS_ASSUME_NONNULL_BEGIN
4440
- (instancetype)init NS_UNAVAILABLE;
4541
- (void)registerMetricKitManager;
4642
- (FBLPromise *)waitForMetricKitDataAvailable;
47-
- (void)processDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> *)payloads;
4843

4944
@end
5045

Crashlytics/Crashlytics/Controllers/FIRCLSMetricKitManager.m

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ - (instancetype)initWithManagerData:(FIRCLSManagerData *)managerData
5656
* last run of the app, this promise is immediately resolved so that the upload of any nonfatal
5757
* events can proceed.
5858
*/
59-
- (void)registerMetricKitManager {
59+
- (void)registerMetricKitManager API_AVAILABLE(ios(14)) {
6060
[[MXMetricManager sharedManager] addSubscriber:self];
6161
self.metricKitDataAvailable = [FBLPromise pendingPromise];
6262

@@ -95,7 +95,8 @@ - (void)registerMetricKitManager {
9595
* immediately after the event. Since we send nonfatal events on the next run of the app, we can
9696
* write out the information but won't need to resolve the promise.
9797
*/
98-
- (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> *)payloads {
98+
- (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> *)payloads
99+
API_AVAILABLE(ios(14)) {
99100
BOOL processedFatalPayload = NO;
100101
for (MXDiagnosticPayload *diagnosticPayload in payloads) {
101102
if (!diagnosticPayload) {
@@ -118,7 +119,7 @@ - (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> *)payloads
118119

119120
// Helper method to write a MetricKit payload's data to file.
120121
- (BOOL)processMetricKitPayload:(MXDiagnosticPayload *)diagnosticPayload
121-
skipCrashEvent:(BOOL)skipCrashEvent {
122+
skipCrashEvent:(BOOL)skipCrashEvent API_AVAILABLE(ios(14)) {
122123
BOOL writeFailed = NO;
123124

124125
// Write out each type of diagnostic if it exists in the report
@@ -144,7 +145,6 @@ - (BOOL)processMetricKitPayload:(MXDiagnosticPayload *)diagnosticPayload
144145
// Also ensure that there is a report from the last run of the app that we can write to.
145146
NSString *metricKitFatalReportFile;
146147
NSString *metricKitNonfatalReportFile;
147-
NSString *metricKitReportFile;
148148
NSString *newestUnsentReportID =
149149
[self.existingReportManager.newestUnsentReport.reportID stringByAppendingString:@"/"];
150150
NSString *currentReportID =
@@ -316,7 +316,7 @@ - (BOOL)processMetricKitPayload:(MXDiagnosticPayload *)diagnosticPayload
316316
* Required for MXMetricManager subscribers. Since we aren't currently collecting any MetricKit
317317
* metrics, this method is left empty.
318318
*/
319-
- (void)didReceiveMetricPayloads:(NSArray<MXMetricPayload *> *)payloads {
319+
- (void)didReceiveMetricPayloads:(NSArray<MXMetricPayload *> *)payloads API_AVAILABLE(ios(13)) {
320320
}
321321

322322
- (FBLPromise *)waitForMetricKitDataAvailable {
@@ -330,15 +330,16 @@ - (FBLPromise *)waitForMetricKitDataAvailable {
330330
/*
331331
* Helper method to convert threads for a MetricKit fatal diagnostic event to an array of threads.
332332
*/
333-
- (NSArray *)convertThreadsToArray:(MXCallStackTree *)mxCallStackTree {
333+
- (NSArray *)convertThreadsToArray:(MXCallStackTree *)mxCallStackTree API_AVAILABLE(ios(14)) {
334334
FIRCLSCallStackTree *tree = [[FIRCLSCallStackTree alloc] initWithMXCallStackTree:mxCallStackTree];
335335
return [tree getArrayRepresentation];
336336
}
337337

338338
/*
339339
* Helper method to convert threads for a MetricKit nonfatal diagnostic event to an array of frames.
340340
*/
341-
- (NSArray *)convertThreadsToArrayForNonfatal:(MXCallStackTree *)mxCallStackTree {
341+
- (NSArray *)convertThreadsToArrayForNonfatal:(MXCallStackTree *)mxCallStackTree
342+
API_AVAILABLE(ios(14)) {
342343
FIRCLSCallStackTree *tree = [[FIRCLSCallStackTree alloc] initWithMXCallStackTree:mxCallStackTree];
343344
return [tree getFramesOfBlamedThread];
344345
}
@@ -347,7 +348,7 @@ - (NSArray *)convertThreadsToArrayForNonfatal:(MXCallStackTree *)mxCallStackTree
347348
* Helper method to convert metadata for a MetricKit diagnostic event to a dictionary. MXMetadata
348349
* has a dictionaryRepresentation method but it is deprecated.
349350
*/
350-
- (NSDictionary *)convertMetadataToDictionary:(MXMetaData *)metadata {
351+
- (NSDictionary *)convertMetadataToDictionary:(MXMetaData *)metadata API_AVAILABLE(ios(14)) {
351352
NSError *error = nil;
352353
NSDictionary *metadataDictionary =
353354
[NSJSONSerialization JSONObjectWithData:[metadata JSONRepresentation] options:0 error:&error];

Crashlytics/Crashlytics/Controllers/FIRCLSReportManager.m

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,13 @@ - (instancetype)initWithManagerData:(FIRCLSManagerData *)managerData
183183

184184
_notificationManager = [[FIRCLSNotificationManager alloc] init];
185185
#if CLS_METRICKIT_SUPPORTED
186-
if (@available(iOS 15, *) && self.settings.metricKitCollectionEnabled) {
187-
FIRCLSDebugLog(@"MetricKit data collection enabled.");
188-
_metricKitManager = [[FIRCLSMetricKitManager alloc] initWithManagerData:managerData
189-
existingReportManager:existingReportManager
190-
fileManager:_fileManager];
186+
if (@available(iOS 15, *)) {
187+
if (self.settings.metricKitCollectionEnabled) {
188+
FIRCLSDebugLog(@"MetricKit data collection enabled.");
189+
_metricKitManager = [[FIRCLSMetricKitManager alloc] initWithManagerData:managerData
190+
existingReportManager:existingReportManager
191+
fileManager:_fileManager];
192+
}
191193
}
192194
#endif
193195

@@ -226,14 +228,16 @@ - (instancetype)initWithManagerData:(FIRCLSManagerData *)managerData
226228
- (FBLPromise *)waitForMetricKitData {
227229
// If the platform is not iOS or the iOS version is less than 15, immediately resolve the promise
228230
// since no MetricKit diagnostics will be available.
231+
FBLPromise *promise = [FBLPromise resolvedWith:nil];
229232
#if CLS_METRICKIT_SUPPORTED
230-
if (@available(iOS 15, *) && self.settings.metricKitCollectionEnabled) {
231-
return [self.metricKitManager waitForMetricKitDataAvailable];
232-
} else {
233-
return [FBLPromise resolvedWith:nil];
233+
if (@available(iOS 15, *)) {
234+
if (self.settings.metricKitCollectionEnabled) {
235+
promise = [self.metricKitManager waitForMetricKitDataAvailable];
236+
}
234237
}
238+
return promise;
235239
#endif
236-
return [FBLPromise resolvedWith:nil];
240+
return promise;
237241
}
238242

239243
- (FBLPromise<FIRCrashlyticsReport *> *)checkForUnsentReports {
@@ -292,8 +296,10 @@ - (FBLPromise *)deleteUnsentReports {
292296
}
293297

294298
#if CLS_METRICKIT_SUPPORTED
295-
if (@available(iOS 15, *) && self.settings.metricKitCollectionEnabled) {
296-
[self.metricKitManager registerMetricKitManager];
299+
if (@available(iOS 15, *)) {
300+
if (self.settings.metricKitCollectionEnabled) {
301+
[self.metricKitManager registerMetricKitManager];
302+
}
297303
}
298304
#endif
299305

Crashlytics/Crashlytics/Helpers/FIRCLSCallStackTree.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ - (instancetype)initWithMXCallStackTree:(MXCallStackTree *)callStackTree {
5858
NSLog(@"Crashlytics: error creating json");
5959
return nil;
6060
}
61-
61+
self = [super init];
62+
if (!self) {
63+
return nil;
64+
}
6265
_callStackPerThread = [[jsonDictionary objectForKey:@"callStackPerThread"] boolValue];
6366

6467
// Recurse through the frames in the callStackTree and add them all to an array

Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@
4141
#define TARGET_OS_TV 0
4242
#endif
4343

44+
// Whether MetricKit should be supported
45+
#if defined(__IPHONE_15_0)
46+
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
47+
#else
48+
#define CLS_METRICKIT_SUPPORTED 0
49+
#endif
50+
4451
// These help compile based on availability of technologies/frameworks.
4552
#define CLS_TARGET_OS_OSX (TARGET_OS_MAC && !TARGET_OS_IPHONE)
4653
#define CLS_TARGET_OS_HAS_UIKIT (TARGET_OS_IOS || TARGET_OS_TV)

Crashlytics/UnitTests/FIRCLSMetricKitManagerTests.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151

5252
#define TEST_GOOGLE_APP_ID (@"1:632950151350:ios:d5b0d08d4f00f4b1")
5353

54+
API_AVAILABLE(ios(14))
5455
@interface FIRCLSMetricKitManagerTests : XCTestCase
5556

5657
@property(nonatomic, strong) FIRCLSMockReportManager *reportManager;

Crashlytics/UnitTests/Mocks/FIRCLSMockMXCPUExceptionDiagnostic.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
#include <Availability.h>
1616
#import <Foundation/Foundation.h>
1717

18-
#if defined(__IPHONE_15_0)
19-
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
20-
#else
21-
#define CLS_METRICKIT_SUPPORTED 0
22-
#endif
18+
#import "Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h"
2319

2420
#if CLS_METRICKIT_SUPPORTED
2521
#import <MetricKit/MetricKit.h>
@@ -28,6 +24,7 @@
2824

2925
NS_ASSUME_NONNULL_BEGIN
3026

27+
API_AVAILABLE(ios(14))
3128
@interface FIRCLSMockMXCPUExceptionDiagnostic : MXCPUExceptionDiagnostic
3229

3330
- (instancetype)initWithCallStackTree:(FIRCLSMockMXCallStackTree *)callStackTree

Crashlytics/UnitTests/Mocks/FIRCLSMockMXCallStackTree.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,14 @@
1515
#include <Availability.h>
1616
#import <Foundation/Foundation.h>
1717

18-
#if defined(__IPHONE_15_0)
19-
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
20-
#else
21-
#define CLS_METRICKIT_SUPPORTED 0
22-
#endif
18+
#import "Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h"
2319

2420
#if CLS_METRICKIT_SUPPORTED
2521
#import <MetricKit/MetricKit.h>
2622

2723
NS_ASSUME_NONNULL_BEGIN
2824

25+
API_AVAILABLE(ios(14))
2926
@interface FIRCLSMockMXCallStackTree : MXCallStackTree
3027

3128
- (instancetype)initWithStringData:(NSString *)stringData;

Crashlytics/UnitTests/Mocks/FIRCLSMockMXCrashDiagnostic.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
#include <Availability.h>
1616
#import <Foundation/Foundation.h>
1717

18-
#if defined(__IPHONE_15_0)
19-
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
20-
#else
21-
#define CLS_METRICKIT_SUPPORTED 0
22-
#endif
18+
#import "Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h"
2319

2420
#if CLS_METRICKIT_SUPPORTED
2521
#import <MetricKit/MetricKit.h>
@@ -28,6 +24,7 @@
2824

2925
NS_ASSUME_NONNULL_BEGIN
3026

27+
API_AVAILABLE(ios(14))
3128
@interface FIRCLSMockMXCrashDiagnostic : MXCrashDiagnostic
3229

3330
- (instancetype)initWithCallStackTree:(FIRCLSMockMXCallStackTree *)callStackTree

Crashlytics/UnitTests/Mocks/FIRCLSMockMXDiagnosticPayload.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
#include <Availability.h>
1616
#import <Foundation/Foundation.h>
1717

18-
#if defined(__IPHONE_15_0)
19-
#define CLS_METRICKIT_SUPPORTED (__has_include(<MetricKit/MetricKit.h>) && TARGET_OS_IOS)
20-
#else
21-
#define CLS_METRICKIT_SUPPORTED 0
22-
#endif
18+
#import "Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h"
2319

2420
#if CLS_METRICKIT_SUPPORTED
2521
#import <MetricKit/MetricKit.h>
@@ -28,6 +24,7 @@
2824

2925
NS_ASSUME_NONNULL_BEGIN
3026

27+
API_AVAILABLE(ios(14))
3128
@interface FIRCLSMockMXDiagnosticPayload : MXDiagnosticPayload
3229

3330
- (instancetype)initWithDiagnostics:(NSDictionary *)diagnostics

0 commit comments

Comments
 (0)