[Pods] Updates AppCenter to 4.2.0

Allows compiling AltStore for iOS simulator from an ARM Mac.
This commit is contained in:
Riley Testut
2021-07-21 13:20:14 -07:00
parent ae0aa7dc65
commit ec1eaf00eb
365 changed files with 16447 additions and 1089 deletions

View File

@@ -0,0 +1,20 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenterCrashes/MSACCrashes.h>)
#import <AppCenterCrashes/MSACCrashHandlerSetupDelegate.h>
#import <AppCenterCrashes/MSACCrashes.h>
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACWrapperCrashesHelper.h"
#endif

View File

@@ -0,0 +1,34 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
/**
* This is required for Wrapper SDKs that need to provide custom behavior surrounding the setup of crash handlers.
*/
NS_SWIFT_NAME(CrashHandlerSetupDelegate)
@protocol MSACCrashHandlerSetupDelegate <NSObject>
@optional
/**
* Callback method that will be called immediately before crash handlers are set up.
*/
- (void)willSetUpCrashHandlers;
/**
* Callback method that will be called immediately after crash handlers are set up.
*/
- (void)didSetUpCrashHandlers;
/**
* Callback method that gets a value indicating whether the SDK should enable an uncaught exception handler.
*
* @return YES if SDK should enable uncaught exception handler, otherwise NO.
*
* @discussion Do not register an UncaughtExceptionHandler for Xamarin as we rely on the Xamarin runtime to report NSExceptions. Registering
* our own UncaughtExceptionHandler will cause the Xamarin debugger to not work properly (it will not stop for NSExceptions).
*/
- (BOOL)shouldEnableUncaughtExceptionHandler;
@end

View File

@@ -0,0 +1,179 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#if __has_include(<AppCenter/MSACServiceAbstract.h>)
#import <AppCenter/MSACServiceAbstract.h>
#else
#import "MSACServiceAbstract.h"
#endif
#if __has_include(<AppCenterCrashes/MSACErrorReport.h>)
#import <AppCenterCrashes/MSACErrorReport.h>
#else
#import "MSACErrorReport.h"
#endif
@class MSACCrashesDelegate;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
*
* @return Returns YES to discard crash reports, otherwise NO.
*/
typedef BOOL (^MSACUserConfirmationHandler)(NSArray<MSACErrorReport *> *_Nonnull errorReports) NS_SWIFT_NAME(UserConfirmationHandler);
/**
* Error Logging status.
*/
typedef NS_ENUM(NSUInteger, MSACErrorLogSetting) {
/**
* Crash reporting is disabled.
*/
MSACErrorLogSettingDisabled = 0,
/**
* User is asked each time before sending error logs.
*/
MSACErrorLogSettingAlwaysAsk = 1,
/**
* Each error log is send automatically.
*/
MSACErrorLogSettingAutoSend = 2
} NS_SWIFT_NAME(ErrorLogSetting);
/**
* Crash Manager alert user input.
*/
typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
/**
* User chose not to send the crash report.
*/
MSACUserConfirmationDontSend = 0,
/**
* User wants the crash report to be sent.
*/
MSACUserConfirmationSend = 1,
/**
* User wants to send all error logs.
*/
MSACUserConfirmationAlways = 2
} NS_SWIFT_NAME(UserConfirmation);
@protocol MSACCrashesDelegate;
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
/**
* Lets the app crash for easy testing of the SDK.
*
* The best way to use this is to trigger the crash with a button action.
*
* Make sure not to let the app crash in `applicationDidFinishLaunching` or any other startup method! Since otherwise the app would crash
* before the SDK could process it.
*
* Note that our SDK provides support for handling crashes that happen early on startup. Check the documentation for more information on how
* to use this.
*
* If the SDK detects an App Store environment, it will _NOT_ cause the app to crash!
*/
+ (void)generateTestCrash;
///-----------------------------------------------------------------------------
/// @name Helpers
///-----------------------------------------------------------------------------
/**
* Check if the app has crashed in the last session.
*
* @return Returns YES is the app has crashed in the last session.
*/
@property(class, readonly, nonatomic) BOOL hasCrashedInLastSession;
/**
* Check if the app received memory warning in the last session.
*
* @return Returns YES is the app received memory warning in the last session.
*/
@property(class, readonly, nonatomic) BOOL hasReceivedMemoryWarningInLastSession;
/**
* Provides details about the crash that occurred in the last app session
*/
@property(class, nullable, readonly, nonatomic) MSACErrorReport *lastSessionCrashReport;
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
/**
* Callback for report exception.
*
* NOTE: This method should be called only if you explicitly disabled swizzling for it.
*
* On OS X runtime, not all uncaught exceptions end in a custom `NSUncaughtExceptionHandler`.
* Forward exception from overrided `[NSApplication reportException:]` to catch additional exceptions.
*/
+ (void)applicationDidReportException:(NSException *_Nonnull)exception;
#endif
///-----------------------------------------------------------------------------
/// @name Configuration
///-----------------------------------------------------------------------------
#if !TARGET_OS_TV
/**
* Disable the Mach exception server.
*
* By default, the SDK uses the Mach exception handler to catch fatal signals, e.g. stack overflows, via a Mach exception server. If you
* want to disable the Mach exception handler, you should call this method _BEFORE_ starting the SDK. Your typical setup code would look
* like this:
*
* `[MSACCrashes disableMachExceptionHandler]`;
* `[MSACAppCenter start:@"YOUR_APP_ID" withServices:@[[MSACCrashes class]]];`
*
* or if you are using Swift:
*
* `MSACCrashes.disableMachExceptionHandler()`
* `MSACAppCenter.start("YOUR_APP_ID", withServices: [MSACAnalytics.self, MSACCrashes.self])`
*
* tvOS does not support the Mach exception handler, thus crashes that are caused by stack overflows cannot be detected. As a result,
* disabling the Mach exception server is not available in the tvOS SDK.
*
* @discussion It can be useful to disable the Mach exception handler when you are debugging the Crashes service while developing,
* especially when you attach the debugger to your application after launch.
*/
+ (void)disableMachExceptionHandler;
#endif
/**
* Set the delegate
* Defines the class that implements the optional protocol `MSACCrashesDelegate`.
*
* @see MSACCrashesDelegate
*/
@property(class, nonatomic, weak) id<MSACCrashesDelegate> _Nullable delegate;
/**
* Set a user confirmation handler that is invoked right before processing crash reports to determine whether sending crash reports or not.
*
* @see MSACUserConfirmationHandler
*/
@property(class, nonatomic) MSACUserConfirmationHandler _Nullable userConfirmationHandler;
/**
* Notify SDK with a confirmation to handle the crash report.
*
* @param userConfirmation A user confirmation.
*
* @see MSACUserConfirmation.
*/
+ (void)notifyWithUserConfirmation:(MSACUserConfirmation)userConfirmation;
@end

View File

@@ -0,0 +1,70 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
@class MSACCrashes;
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
NS_ASSUME_NONNULL_BEGIN
NS_SWIFT_NAME(CrashesDelegate)
@protocol MSACCrashesDelegate <NSObject>
@optional
/**
* Callback method that will be called before processing errors.
*
* @param crashes The instance of MSACCrashes.
* @param errorReport The errorReport that will be sent.
*
* @discussion Crashes will send logs to the server or discard/delete logs based on this method's return value.
*/
- (BOOL)crashes:(MSACCrashes *)crashes shouldProcessErrorReport:(MSACErrorReport *)errorReport NS_SWIFT_NAME(crashes(_:shouldProcess:));
/**
* Callback method that will be called before each error will be send to the server.
*
* @param crashes The instance of MSACCrashes.
* @param errorReport The errorReport that will be sent.
*
* @discussion Use this callback to display custom UI while crashes are sent to the server.
*/
- (void)crashes:(MSACCrashes *)crashes willSendErrorReport:(MSACErrorReport *)errorReport;
/**
* Callback method that will be called after the SDK successfully sent an error report to the server.
*
* @param crashes The instance of MSACCrashes.
* @param errorReport The errorReport that App Center sent.
*
* @discussion Use this method to hide your custom UI.
*/
- (void)crashes:(MSACCrashes *)crashes didSucceedSendingErrorReport:(MSACErrorReport *)errorReport;
/**
* Callback method that will be called in case the SDK was unable to send an error report to the server.
*
* @param crashes The instance of MSACCrashes.
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
*
* @param crashes The instance of MSACCrashes.
* @param errorReport The errorReport associated with the returned attachments.
*
* @return The attachments associated with the given error report or nil if the error report doesn't have any attachments.
*
* @discussion Implement this method if you want attachments to the given error report.
*/
- (nullable NSArray<MSACErrorAttachmentLog *> *)attachmentsWithCrashes:(MSACCrashes *)crashes forErrorReport:(MSACErrorReport *)errorReport;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,36 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#if __has_include(<AppCenterCrashes/MSACErrorAttachmentLog.h>)
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#else
#import "MSACErrorAttachmentLog.h"
#endif
// Exporting symbols for category.
extern NSString *MSACMSACErrorLogAttachmentLogUtilityCategory;
@interface MSACErrorAttachmentLog (Utility)
/**
* Create an attachment with a given filename and text.
*
* @param filename The filename the attachment should get. If nil will get an automatically generated filename.
* @param text The attachment text.
*
* @return An instance of `MSACErrorAttachmentLog`.
*/
+ (MSACErrorAttachmentLog *)attachmentWithText:(NSString *)text filename:(NSString *)filename;
/**
* Create an attachment with a given filename and `NSData` object.
*
* @param filename The filename the attachment should get. If nil will get an automatically generated filename.
* @param data The attachment data as NSData.
* @param contentType The content type of your data as MIME type.
*
* @return An instance of `MSACErrorAttachmentLog`.
*/
+ (MSACErrorAttachmentLog *)attachmentWithBinary:(NSData *)data filename:(NSString *)filename contentType:(NSString *)contentType;
@end

View File

@@ -0,0 +1,54 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACAbstractLog.h>)
#import <AppCenter/MSACAbstractLog.h>
#else
#import "MSACAbstractLog.h"
#endif
/**
* Error attachment log.
*/
NS_SWIFT_NAME(ErrorAttachmentLog)
@interface MSACErrorAttachmentLog : MSACAbstractLog
/**
* Content type (text/plain for text).
*/
@property(nonatomic, copy) NSString *contentType;
/**
* File name.
*/
@property(nonatomic, copy) NSString *filename;
/**
* The attachment data.
*/
@property(nonatomic, copy) NSData *data;
/**
* Initialize an attachment with a given filename and `NSData` object.
*
* @param filename The filename the attachment should get. If nil will get an automatically generated filename.
* @param data The attachment data as `NSData`.
* @param contentType The content type of your data as MIME type.
*
* @return An instance of `MSACErrorAttachmentLog`.
*/
- (instancetype)initWithFilename:(NSString *)filename attachmentBinary:(NSData *)data contentType:(NSString *)contentType;
/**
* Initialize an attachment with a given filename and text.
*
* @param filename The filename the attachment should get. If nil will get an automatically generated filename.
* @param text The attachment text.
*
* @return An instance of `MSACErrorAttachmentLog`.
*/
- (instancetype)initWithFilename:(NSString *)filename attachmentText:(NSString *)text;
@end

View File

@@ -0,0 +1,67 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
@class MSACDevice;
NS_SWIFT_NAME(ErrorReport)
@interface MSACErrorReport : NSObject
/**
* UUID for the crash report.
*/
@property(nonatomic, copy, readonly) NSString *incidentIdentifier;
/**
* UUID for the app installation on the device.
*/
@property(nonatomic, copy, readonly) NSString *reporterKey;
/**
* Signal that caused the crash.
*/
@property(nonatomic, copy, readonly) NSString *signal;
/**
* Exception name that triggered the crash, nil if the crash was not caused by an exception.
*/
@property(nonatomic, copy, readonly) NSString *exceptionName;
/**
* Exception reason, nil if the crash was not caused by an exception.
*/
@property(nonatomic, copy, readonly) NSString *exceptionReason;
/**
* Date and time the app started, nil if unknown.
*/
@property(nonatomic, readonly, strong) NSDate *appStartTime;
/**
* Date and time the error occurred, nil if unknown
*/
@property(nonatomic, readonly, strong) NSDate *appErrorTime;
/**
* Device information of the app when it crashed.
*/
@property(nonatomic, readonly, strong) MSACDevice *device;
/**
* Identifier of the app process that crashed.
*/
@property(nonatomic, readonly, assign) NSUInteger appProcessIdentifier;
/**
* Indicates if the app was killed while being in foreground from the iOS.
*
* This can happen if it consumed too much memory or the watchdog killed the app because it took too long to startup or blocks the main
* thread for too long, or other reasons. See Apple documentation:
* https://developer.apple.com/library/ios/qa/qa1693/_index.html.
*
* @see `[MSACCrashes didReceiveMemoryWarningInLastSession]`
*/
@property(nonatomic, readonly) BOOL isAppKill;
@end

View File

@@ -0,0 +1,94 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenterCrashes/MSACCrashHandlerSetupDelegate.h>)
#import <AppCenterCrashes/MSACCrashHandlerSetupDelegate.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#endif
NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
*/
NS_SWIFT_NAME(WrapperCrashesHelper)
@interface MSACWrapperCrashesHelper : NSObject
/**
* The crash handler setup delegate.
*
*/
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
*
* @deprecated
*
* @return The delegate being used by Crashes.
*/
+ (id<MSACCrashHandlerSetupDelegate>)getCrashHandlerSetupDelegate DEPRECATED_MSG_ATTRIBUTE("Use crashHandlerSetupDelegate instead");
/**
* Enables or disables automatic crash processing. Passing NO causes SDK not to send reports immediately, even if "Always Send" is true.
*/
@property(class, nonatomic) BOOL automaticProcessing;
/**
* Gets a list of unprocessed crash reports. Will block until the service starts.
*
* @return An array of unprocessed error reports.
*/
@property(class, readonly, nonatomic) NSArray<MSACErrorReport *> *unprocessedCrashReports;
/**
* Resumes processing for a given subset of the unprocessed reports.
*
* @param filteredIds An array containing the errorId/incidentIdentifier of each report that should be sent.
*
* @return YES if should "Always Send" is true.
*/
+ (BOOL)sendCrashReportsOrAwaitUserConfirmationForFilteredIds:(NSArray<NSString *> *)filteredIds;
/**
* Sends error attachments for a particular error report.
*
* @param errorAttachments An array of error attachments that should be sent.
* @param incidentIdentifier The identifier of the error report that the attachments will be associated with.
*/
+ (void)sendErrorAttachments:(NSArray<MSACErrorAttachmentLog *> *)errorAttachments withIncidentIdentifier:(NSString *)incidentIdentifier;
/**
* Track handled exception directly as model form.
* This API is used by wrapper SDKs.
*
* @param exception model form exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (nullable NSString *)trackModelException:(MSACException *)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
withAttachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments;
/**
* Get a generic error report representation for an handled exception.
* This API is used by wrapper SDKs.
*
* @param errorID handled error ID.
*
* @return an error report.
*/
+ (MSACErrorReport *)buildHandledErrorReportWithErrorID:(NSString *)errorID;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,10 @@
framework module AppCenterCrashes {
umbrella header "AppCenterCrashes.h"
export *
module * { export * }
link framework "Foundation"
link "c++"
link "z"
}