fix: only make network calls to appcenter when necessary (closes #1265)

This commit is contained in:
Andre Borie
2021-12-02 00:12:47 +09:00
committed by lwouis
parent a6ea7a3950
commit 79c290603d
114 changed files with 1712 additions and 290 deletions
+1 -1
View File
@@ -6,5 +6,5 @@ target 'alt-tab-macos' do
pod 'Sparkle', :podspec => 'https://raw.githubusercontent.com/lwouis/Sparkle/fix-iframe-popup-1.24/Sparkle.podspec'
pod 'ShortcutRecorder', :git => 'https://github.com/Kentzo/ShortcutRecorder.git', :commit => 'f718220854575bad86fa89dd2bb3decd0b14b2b0'
pod 'SwiftyMarkdown', '1.1.0'
pod 'AppCenter/Crashes', '4.1.0'
pod 'AppCenter/Crashes', '4.3.0'
end
+5 -5
View File
@@ -1,6 +1,6 @@
PODS:
- AppCenter/Core (4.1.0)
- AppCenter/Crashes (4.1.0):
- AppCenter/Core (4.3.0)
- AppCenter/Crashes (4.3.0):
- AppCenter/Core
- LetsMove (1.24)
- ShortcutRecorder (3.1)
@@ -8,7 +8,7 @@ PODS:
- SwiftyMarkdown (1.1.0)
DEPENDENCIES:
- AppCenter/Crashes (= 4.1.0)
- AppCenter/Crashes (= 4.3.0)
- LetsMove (from `https://github.com/lwouis/LetsMove.git`, commit `7abf4daed1a25218f2b52f2dfd190aee5a50071c`)
- ShortcutRecorder (from `https://github.com/Kentzo/ShortcutRecorder.git`, commit `f718220854575bad86fa89dd2bb3decd0b14b2b0`)
- Sparkle (from `https://raw.githubusercontent.com/lwouis/Sparkle/fix-iframe-popup-1.24/Sparkle.podspec`)
@@ -38,12 +38,12 @@ CHECKOUT OPTIONS:
:git: https://github.com/Kentzo/ShortcutRecorder.git
SPEC CHECKSUMS:
AppCenter: 8832b158d17e54845c3b88a91076218f0b07174d
AppCenter: 883369ab78427b0561c688158d689dfe1f993ea9
LetsMove: fefe56bc7bc7fb7d37049e28a14f297961229fc5
ShortcutRecorder: fdf620aca34101b0cba3b10fca815e0459254189
Sparkle: 1fa490bb4ab2a9b37cfb9ea4feec19dd33b81cd2
SwiftyMarkdown: 033abc9dad9a37903f81aec5188cade436f40520
PODFILE CHECKSUM: 6102fea2825ff3bd342fd007b8e6322858c9474e
PODFILE CHECKSUM: 221e0c8a87ed30b40d9d155eb61d139c2205b497
COCOAPODS: 1.9.1
@@ -6,18 +6,15 @@
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_arm64e_armv7_armv7s</string>
<string>tvos-arm64</string>
<key>LibraryPath</key>
<string>AppCenter.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>arm64e</string>
<string>armv7</string>
<string>armv7s</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<string>tvos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
@@ -34,18 +31,6 @@
<key>SupportedPlatformVariant</key>
<string>maccatalyst</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>tvos-arm64</string>
<key>LibraryPath</key>
<string>AppCenter.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>tvos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_i386_x86_64-simulator</string>
@@ -64,16 +49,18 @@
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>macos-arm64_x86_64</string>
<string>ios-arm64_arm64e_armv7_armv7s</string>
<key>LibraryPath</key>
<string>AppCenter.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
<string>arm64e</string>
<string>armv7</string>
<string>armv7s</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
<string>ios</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
@@ -90,6 +77,19 @@
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>macos-arm64_x86_64</string>
<key>LibraryPath</key>
<string>AppCenter.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -6,7 +6,7 @@
<dict>
<key>Headers/AppCenter.h</key>
<data>
qaTNZSZUTXwLe2rrosDNCarRqAM=
w9sW6K7DVhGfORLCjGXijaR25m0=
</data>
<key>Headers/MSACAbstractLog.h</key>
<data>
@@ -14,7 +14,7 @@
</data>
<key>Headers/MSACAppCenter.h</key>
<data>
fyZS3gRJvUizXP6KoVErqu2xyZE=
2cUgfgx3odOGivdk+n6FXq94KgU=
</data>
<key>Headers/MSACAppCenterErrors.h</key>
<data>
@@ -22,7 +22,7 @@
</data>
<key>Headers/MSACChannelGroupProtocol.h</key>
<data>
3ucRib1Bg8/nTJfvHHieHPd9o+s=
jyWCHN4PSygLVy0IM5565DvDQAc=
</data>
<key>Headers/MSACChannelProtocol.h</key>
<data>
@@ -60,6 +60,10 @@
<data>
CaYHmB3+psy5/txfMvd2+bWGJkc=
</data>
<key>Headers/MSACSerializableObject.h</key>
<data>
or5nqKvOQVn2ZieUCmYK6fIZkWY=
</data>
<key>Headers/MSACService.h</key>
<data>
lz5atiMe+oTdu9e6g74KPC0CjOs=
@@ -78,7 +82,7 @@
</data>
<key>Info.plist</key>
<data>
zdZ/cUUa6uXVQ4cqVo6u7Rs1B38=
vQsDzcm1lLcpUNIaE5cw31rdoVk=
</data>
<key>Modules/module.modulemap</key>
<data>
@@ -86,7 +90,7 @@
</data>
<key>PrivateHeaders/MSACChannelDelegate.h</key>
<data>
WzX9TX1oxW4ezY/2JpPNH9dUE24=
Msff4BZ/b1IjaYeKTDBHtNtT7wI=
</data>
</dict>
<key>files2</key>
@@ -95,11 +99,11 @@
<dict>
<key>hash</key>
<data>
qaTNZSZUTXwLe2rrosDNCarRqAM=
w9sW6K7DVhGfORLCjGXijaR25m0=
</data>
<key>hash2</key>
<data>
2Wv2BhvzEcs7qHle8K3IXhWh7EVoAIrE2gOs4b0p39c=
e9qe35Ew1pz0RMBfwa2Jv+3188p8iTwwktkIgCa/ztg=
</data>
</dict>
<key>Headers/MSACAbstractLog.h</key>
@@ -117,11 +121,11 @@
<dict>
<key>hash</key>
<data>
fyZS3gRJvUizXP6KoVErqu2xyZE=
2cUgfgx3odOGivdk+n6FXq94KgU=
</data>
<key>hash2</key>
<data>
nuBkrbyOl3jAk9o5WoL4cSZAFLBmtD3D0NhUzZh8XZ4=
C10z0NrhN4J4qdWbypOdjlQ8QLlq4tvPMP21geOS4vI=
</data>
</dict>
<key>Headers/MSACAppCenterErrors.h</key>
@@ -139,11 +143,11 @@
<dict>
<key>hash</key>
<data>
3ucRib1Bg8/nTJfvHHieHPd9o+s=
jyWCHN4PSygLVy0IM5565DvDQAc=
</data>
<key>hash2</key>
<data>
ZygIkpz0WRFePrjQafoN7MektFloCZQARlOWc3ozcVw=
d36rCjxsURqDkFv+g5BwWNybz5Zksc9B91gqArFcJbk=
</data>
</dict>
<key>Headers/MSACChannelProtocol.h</key>
@@ -245,6 +249,17 @@
GipSaz+D+Z5eWauQP+10U8xvbAnxPeIRD4HTvn0F5DQ=
</data>
</dict>
<key>Headers/MSACSerializableObject.h</key>
<dict>
<key>hash</key>
<data>
or5nqKvOQVn2ZieUCmYK6fIZkWY=
</data>
<key>hash2</key>
<data>
TdCeoNla8kUqc5HPES6WNwi7ycy+4vRr3HGDipEXNVE=
</data>
</dict>
<key>Headers/MSACService.h</key>
<dict>
<key>hash</key>
@@ -304,11 +319,11 @@
<dict>
<key>hash</key>
<data>
WzX9TX1oxW4ezY/2JpPNH9dUE24=
Msff4BZ/b1IjaYeKTDBHtNtT7wI=
</data>
<key>hash2</key>
<data>
AbAoifmIR5SJez5erJnVgTIz81yIMmvbnw6siYXEvaM=
d1uS+ptvOX/o3CCB23FEJAtvcf7KIf/8ozlruAf1f0g=
</data>
</dict>
</dict>
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H15</string>
<string>19H1323</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H15</string>
<string>19H1323</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -17,6 +17,7 @@
#import <AppCenter/MSACLog.h>
#import <AppCenter/MSACLogWithProperties.h>
#import <AppCenter/MSACLogger.h>
#import <AppCenter/MSACSerializableObject.h>
#import <AppCenter/MSACService.h>
#import <AppCenter/MSACServiceAbstract.h>
#import <AppCenter/MSACWrapperLogger.h>
@@ -35,6 +36,7 @@
#import "MSACLog.h"
#import "MSACLogWithProperties.h"
#import "MSACLogger.h"
#import "MSACSerializableObject.h"
#import "MSACService.h"
#import "MSACServiceAbstract.h"
#import "MSACWrapperLogger.h"
@@ -95,6 +95,14 @@ NS_SWIFT_NAME(AppCenter)
*/
@property(class, nonatomic, getter=isEnabled, setter=setEnabled:) BOOL enabled NS_SWIFT_NAME(enabled);
/**
* Flag indicating whether SDK can send network requests.
*
* The state is persisted in the device's storage across application launches.
*/
@property(class, nonatomic, getter=isNetworkRequestsAllowed, setter=setNetworkRequestsAllowed:)
BOOL networkRequestsAllowed NS_SWIFT_NAME(networkRequestsAllowed);
/**
* The SDK's log level.
*/
@@ -103,7 +111,7 @@ NS_SWIFT_NAME(AppCenter)
/**
* Base URL to use for backend communication.
*/
@property(class, nonatomic) NSString *logUrl;
@property(class, nonatomic, strong) NSString *logUrl;
/**
* Set log handler.
@@ -114,7 +122,7 @@ NS_SWIFT_NAME(AppCenter)
* Set wrapper SDK information to use when building device properties. This is intended in case you are building a SDK that uses the App
* Center SDK under the hood, e.g. our Xamarin SDK or ReactNative SDk.
*/
@property(class, nonatomic) MSACWrapperSdk *wrapperSdk;
@property(class, nonatomic, strong) MSACWrapperSdk *wrapperSdk;
#if !TARGET_OS_TV
/**
@@ -181,14 +189,14 @@ NS_SWIFT_NAME(AppCenter)
*
* AppCenter must be configured or started before this API can be used.
*/
@property(class, nonatomic) NSString *userId;
@property(class, nonatomic, strong) NSString *userId;
/**
* Set country code to use when building device properties.
*
* @see https://www.iso.org/obp/ui/#search for more information.
*/
@property(class, nonatomic) NSString *countryCode;
@property(class, nonatomic, strong) NSString *countryCode;
@end
@@ -51,12 +51,12 @@ NS_SWIFT_NAME(ChannelGroupProtocol)
/**
* Change the base URL (schema + authority + port only) used to communicate with the backend.
*/
@property(nonatomic) NSString *_Nullable logUrl;
@property(nonatomic, strong) NSString *_Nullable logUrl;
/**
* Set the app secret.
*/
@property(nonatomic) NSString *_Nullable appSecret;
@property(nonatomic, strong) NSString *_Nullable appSecret;
/**
* Set the maximum size of the internal storage. This method must be called before App Center is started.
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef SERIALIZABLE_OBJECT_H
#define SERIALIZABLE_OBJECT_H
@protocol MSACSerializableObject <NSCoding>
/**
* Serialize this object to a dictionary.
*
* @return A dictionary representing this object.
*/
- (NSMutableDictionary *)serializeToDictionary;
@end
#endif
@@ -10,6 +10,8 @@
@protocol MSACChannelProtocol;
@protocol MSACLog;
NS_ASSUME_NONNULL_BEGIN
@protocol MSACChannelDelegate <NSObject>
@optional
@@ -69,7 +71,7 @@
* @param log The log to be sent.
* @param error The error that occured.
*/
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(NSError *)error;
- (void)channel:(id<MSACChannelProtocol>)channel didFailSendingLog:(id<MSACLog>)log withError:(nullable NSError *)error;
/**
* A callback that is called when setEnabled has been invoked.
@@ -108,3 +110,5 @@
- (BOOL)channelUnit:(id<MSACChannelUnitProtocol>)channelUnit shouldFilterLog:(id<MSACLog>)log;
@end
NS_ASSUME_NONNULL_END
@@ -6,7 +6,7 @@
<dict>
<key>Headers/AppCenter.h</key>
<data>
qaTNZSZUTXwLe2rrosDNCarRqAM=
w9sW6K7DVhGfORLCjGXijaR25m0=
</data>
<key>Headers/MSACAbstractLog.h</key>
<data>
@@ -14,7 +14,7 @@
</data>
<key>Headers/MSACAppCenter.h</key>
<data>
fyZS3gRJvUizXP6KoVErqu2xyZE=
2cUgfgx3odOGivdk+n6FXq94KgU=
</data>
<key>Headers/MSACAppCenterErrors.h</key>
<data>
@@ -22,7 +22,7 @@
</data>
<key>Headers/MSACChannelGroupProtocol.h</key>
<data>
3ucRib1Bg8/nTJfvHHieHPd9o+s=
jyWCHN4PSygLVy0IM5565DvDQAc=
</data>
<key>Headers/MSACChannelProtocol.h</key>
<data>
@@ -60,6 +60,10 @@
<data>
CaYHmB3+psy5/txfMvd2+bWGJkc=
</data>
<key>Headers/MSACSerializableObject.h</key>
<data>
or5nqKvOQVn2ZieUCmYK6fIZkWY=
</data>
<key>Headers/MSACService.h</key>
<data>
lz5atiMe+oTdu9e6g74KPC0CjOs=
@@ -78,7 +82,7 @@
</data>
<key>Info.plist</key>
<data>
7sYncZtohI81qzz4TO0ZyfxPqSM=
nu+ldEv5cj3rjniF8N9Pt71xz68=
</data>
<key>Modules/module.modulemap</key>
<data>
@@ -86,7 +90,7 @@
</data>
<key>PrivateHeaders/MSACChannelDelegate.h</key>
<data>
WzX9TX1oxW4ezY/2JpPNH9dUE24=
Msff4BZ/b1IjaYeKTDBHtNtT7wI=
</data>
</dict>
<key>files2</key>
@@ -95,11 +99,11 @@
<dict>
<key>hash</key>
<data>
qaTNZSZUTXwLe2rrosDNCarRqAM=
w9sW6K7DVhGfORLCjGXijaR25m0=
</data>
<key>hash2</key>
<data>
2Wv2BhvzEcs7qHle8K3IXhWh7EVoAIrE2gOs4b0p39c=
e9qe35Ew1pz0RMBfwa2Jv+3188p8iTwwktkIgCa/ztg=
</data>
</dict>
<key>Headers/MSACAbstractLog.h</key>
@@ -117,11 +121,11 @@
<dict>
<key>hash</key>
<data>
fyZS3gRJvUizXP6KoVErqu2xyZE=
2cUgfgx3odOGivdk+n6FXq94KgU=
</data>
<key>hash2</key>
<data>
nuBkrbyOl3jAk9o5WoL4cSZAFLBmtD3D0NhUzZh8XZ4=
C10z0NrhN4J4qdWbypOdjlQ8QLlq4tvPMP21geOS4vI=
</data>
</dict>
<key>Headers/MSACAppCenterErrors.h</key>
@@ -139,11 +143,11 @@
<dict>
<key>hash</key>
<data>
3ucRib1Bg8/nTJfvHHieHPd9o+s=
jyWCHN4PSygLVy0IM5565DvDQAc=
</data>
<key>hash2</key>
<data>
ZygIkpz0WRFePrjQafoN7MektFloCZQARlOWc3ozcVw=
d36rCjxsURqDkFv+g5BwWNybz5Zksc9B91gqArFcJbk=
</data>
</dict>
<key>Headers/MSACChannelProtocol.h</key>
@@ -245,6 +249,17 @@
GipSaz+D+Z5eWauQP+10U8xvbAnxPeIRD4HTvn0F5DQ=
</data>
</dict>
<key>Headers/MSACSerializableObject.h</key>
<dict>
<key>hash</key>
<data>
or5nqKvOQVn2ZieUCmYK6fIZkWY=
</data>
<key>hash2</key>
<data>
TdCeoNla8kUqc5HPES6WNwi7ycy+4vRr3HGDipEXNVE=
</data>
</dict>
<key>Headers/MSACService.h</key>
<dict>
<key>hash</key>
@@ -304,11 +319,11 @@
<dict>
<key>hash</key>
<data>
WzX9TX1oxW4ezY/2JpPNH9dUE24=
Msff4BZ/b1IjaYeKTDBHtNtT7wI=
</data>
<key>hash2</key>
<data>
AbAoifmIR5SJez5erJnVgTIz81yIMmvbnw6siYXEvaM=
d1uS+ptvOX/o3CCB23FEJAtvcf7KIf/8ozlruAf1f0g=
</data>
</dict>
</dict>
@@ -6,18 +6,19 @@
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_arm64e_armv7_armv7s</string>
<string>ios-arm64_i386_x86_64-simulator</string>
<key>LibraryPath</key>
<string>AppCenterCrashes.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>arm64e</string>
<string>armv7</string>
<string>armv7s</string>
<string>i386</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
@@ -31,19 +32,6 @@
<key>SupportedPlatform</key>
<string>tvos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>macos-arm64_x86_64</string>
<key>LibraryPath</key>
<string>AppCenterCrashes.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>tvos-arm64_x86_64-simulator</string>
@@ -59,6 +47,34 @@
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>macos-arm64_x86_64</string>
<key>LibraryPath</key>
<string>AppCenterCrashes.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_arm64e_armv7_armv7s</string>
<key>LibraryPath</key>
<string>AppCenterCrashes.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>arm64e</string>
<string>armv7</string>
<string>armv7s</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-maccatalyst</string>
@@ -74,22 +90,6 @@
<key>SupportedPlatformVariant</key>
<string>maccatalyst</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_i386_x86_64-simulator</string>
<key>LibraryPath</key>
<string>AppCenterCrashes.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>i386</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
@@ -9,12 +9,18 @@
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACStackFrame.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACExceptionModel.h"
#import "MSACStackFrame.h"
#import "MSACWrapperCrashesHelper.h"
#import "MSACWrapperExceptionModel.h"
#endif
@@ -14,6 +14,8 @@
#endif
@class MSACCrashesDelegate;
@class MSACExceptionModel;
@class MSACErrorAttachmentLog;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
@@ -69,6 +71,32 @@ typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
/**
* Track handled error.
*
* @param error error.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackError:(NSError *_Nonnull)error
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackError(_:properties:attachments:));
/**
* Track handled exception from custom exception model.
*
* @param exception custom model exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackException:(MSACExceptionModel *_Nonnull)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackException(_:properties:attachments:));
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
@@ -51,7 +51,7 @@ NS_SWIFT_NAME(CrashesDelegate)
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
@@ -0,0 +1,81 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_EXCEPTION_MODEL_H
#define MSAC_EXCEPTION_MODEL_H
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@class MSACStackFrame;
NS_SWIFT_NAME(ExceptionModel)
@interface MSACExceptionModel : NSObject <MSACSerializableObject>
/**
* Creates an instance of exception model.
*
* @param error error.
*
* @return A new instance of exception.
*/
- (instancetype)initWithError:(NSError *)error NS_SWIFT_NAME(init(withError:));
/**
* Creates an instance of exception model.
*
* @param exceptionType exception type.
* @param exceptionMessage exception message.
* @param stackTrace stack trace.
*
* @return A new instance of exception.
*/
- (instancetype)initWithType:(NSString *)exceptionType
exceptionMessage:(NSString *)exceptionMessage
stackTrace:(NSArray<NSString *> *)stackTrace
NS_SWIFT_NAME(init(withType:exceptionMessage:stackTrace:));
/**
* Creates an instance of exception model.
*
* @exception exception.
*
* @return A new instance of exception.
*/
- (instancetype)initWithException:(NSException *)exception NS_SWIFT_NAME(init(withException:));
/**
* Exception type.
*/
@property(nonatomic, copy) NSString *type;
/**
* Exception reason.
*/
@property(nonatomic, copy) NSString *message;
/**
* Raw stack trace. Sent when the frames property is either missing or unreliable.
*/
@property(nonatomic, copy) NSString *stackTrace;
/**
* Stack frames [optional].
*/
@property(nonatomic, strong) NSArray<MSACStackFrame *> *frames;
/**
* Checks if the object's values are valid.
*
* @return YES, if the object is valid.
*/
- (BOOL)isValid;
@end
#endif
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACStackFrame : NSObject <MSACSerializableObject>
/*
* Frame address [optional].
*/
@property(nonatomic, copy) NSString *address;
/*
* Symbolized code line [optional].
*/
@property(nonatomic, copy) NSString *code;
/*
* The fully qualified name of the Class containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *className;
/*
* The name of the method containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *methodName;
/*
* The line number of the source line containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSNumber *lineNumber;
/*
* The name of the file containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *fileName;
@end
@@ -13,7 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
@@ -25,7 +24,7 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
* The crash handler setup delegate.
*
*/
@property(class, nonatomic) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
@@ -65,20 +64,6 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
*/
+ (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.
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_WRAPPER_EXCEPTION_MODEL_H
#define MSAC_WRAPPER_EXCEPTION_MODEL_H
#if __has_include(<AppCenterCrashes/MSACExceptionModel.h>)
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACExceptionModel.h"
#import "MSACWrapperExceptionModel.h"
#endif
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACWrapperExceptionModel : MSACExceptionModel
/*
* Inner exceptions of this exception [optional].
*/
@property(nonatomic, strong) NSArray<MSACWrapperExceptionModel *> *innerExceptions;
/*
* Name of the wrapper SDK that emitted this exception.
* Consists of the name of the SDK and the wrapper platform, e.g. "appcenter.xamarin", "appcenter.react-native" [optional].
*/
@property(nonatomic, copy) NSString *wrapperSdkName;
@end
#endif
@@ -9,12 +9,18 @@
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACStackFrame.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACExceptionModel.h"
#import "MSACStackFrame.h"
#import "MSACWrapperCrashesHelper.h"
#import "MSACWrapperExceptionModel.h"
#endif
@@ -14,6 +14,8 @@
#endif
@class MSACCrashesDelegate;
@class MSACExceptionModel;
@class MSACErrorAttachmentLog;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
@@ -69,6 +71,32 @@ typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
/**
* Track handled error.
*
* @param error error.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackError:(NSError *_Nonnull)error
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackError(_:properties:attachments:));
/**
* Track handled exception from custom exception model.
*
* @param exception custom model exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackException:(MSACExceptionModel *_Nonnull)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackException(_:properties:attachments:));
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
@@ -51,7 +51,7 @@ NS_SWIFT_NAME(CrashesDelegate)
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
@@ -0,0 +1,81 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_EXCEPTION_MODEL_H
#define MSAC_EXCEPTION_MODEL_H
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@class MSACStackFrame;
NS_SWIFT_NAME(ExceptionModel)
@interface MSACExceptionModel : NSObject <MSACSerializableObject>
/**
* Creates an instance of exception model.
*
* @param error error.
*
* @return A new instance of exception.
*/
- (instancetype)initWithError:(NSError *)error NS_SWIFT_NAME(init(withError:));
/**
* Creates an instance of exception model.
*
* @param exceptionType exception type.
* @param exceptionMessage exception message.
* @param stackTrace stack trace.
*
* @return A new instance of exception.
*/
- (instancetype)initWithType:(NSString *)exceptionType
exceptionMessage:(NSString *)exceptionMessage
stackTrace:(NSArray<NSString *> *)stackTrace
NS_SWIFT_NAME(init(withType:exceptionMessage:stackTrace:));
/**
* Creates an instance of exception model.
*
* @exception exception.
*
* @return A new instance of exception.
*/
- (instancetype)initWithException:(NSException *)exception NS_SWIFT_NAME(init(withException:));
/**
* Exception type.
*/
@property(nonatomic, copy) NSString *type;
/**
* Exception reason.
*/
@property(nonatomic, copy) NSString *message;
/**
* Raw stack trace. Sent when the frames property is either missing or unreliable.
*/
@property(nonatomic, copy) NSString *stackTrace;
/**
* Stack frames [optional].
*/
@property(nonatomic, strong) NSArray<MSACStackFrame *> *frames;
/**
* Checks if the object's values are valid.
*
* @return YES, if the object is valid.
*/
- (BOOL)isValid;
@end
#endif
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACStackFrame : NSObject <MSACSerializableObject>
/*
* Frame address [optional].
*/
@property(nonatomic, copy) NSString *address;
/*
* Symbolized code line [optional].
*/
@property(nonatomic, copy) NSString *code;
/*
* The fully qualified name of the Class containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *className;
/*
* The name of the method containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *methodName;
/*
* The line number of the source line containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSNumber *lineNumber;
/*
* The name of the file containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *fileName;
@end
@@ -13,7 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
@@ -25,7 +24,7 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
* The crash handler setup delegate.
*
*/
@property(class, nonatomic) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
@@ -65,20 +64,6 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
*/
+ (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.
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_WRAPPER_EXCEPTION_MODEL_H
#define MSAC_WRAPPER_EXCEPTION_MODEL_H
#if __has_include(<AppCenterCrashes/MSACExceptionModel.h>)
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACExceptionModel.h"
#import "MSACWrapperExceptionModel.h"
#endif
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACWrapperExceptionModel : MSACExceptionModel
/*
* Inner exceptions of this exception [optional].
*/
@property(nonatomic, strong) NSArray<MSACWrapperExceptionModel *> *innerExceptions;
/*
* Name of the wrapper SDK that emitted this exception.
* Consists of the name of the SDK and the wrapper platform, e.g. "appcenter.xamarin", "appcenter.react-native" [optional].
*/
@property(nonatomic, copy) NSString *wrapperSdkName;
@end
#endif
@@ -6,7 +6,7 @@
<dict>
<key>Headers/AppCenterCrashes.h</key>
<data>
eS1L4vZ9uOJZWtS26mqGyfAfCvE=
SUQZOPrzwqVaEYuELhr7Z/cRTh0=
</data>
<key>Headers/MSACCrashHandlerSetupDelegate.h</key>
<data>
@@ -14,11 +14,11 @@
</data>
<key>Headers/MSACCrashes.h</key>
<data>
eHC+/SrZ0R08kZxHQSoVyQf+vCo=
r8P9kK348cdQnlFX6FacTW6y3+c=
</data>
<key>Headers/MSACCrashesDelegate.h</key>
<data>
czYUE2OOoD3lc+2UHRPFMakb0jQ=
qnhKqY+vAsatzNxGZyoxFMmwIxI=
</data>
<key>Headers/MSACErrorAttachmentLog+Utility.h</key>
<data>
@@ -32,13 +32,25 @@
<data>
OZkejnc70UL+wPdiV8fw2UAcBR0=
</data>
<key>Headers/MSACExceptionModel.h</key>
<data>
FGcXjyUYzvd/LDjl0hc2Ah+1D1Q=
</data>
<key>Headers/MSACStackFrame.h</key>
<data>
j8bbwC65keur+uW6rxfIERJNFWI=
</data>
<key>Headers/MSACWrapperCrashesHelper.h</key>
<data>
PRoMqamOgoTAX8mweVFBYStiziQ=
XjDlLOnOWP3EG0z+nuYQDxLEVcY=
</data>
<key>Headers/MSACWrapperExceptionModel.h</key>
<data>
fTPRyH4z/TDoTMVaRXo1TWACDzI=
</data>
<key>Info.plist</key>
<data>
aMhE7UvcWzAgWCrN2k2rUGdH2U0=
JMjfyLGFjbABfCXy4P+PQwS+lCg=
</data>
<key>Modules/module.modulemap</key>
<data>
@@ -51,11 +63,11 @@
<dict>
<key>hash</key>
<data>
eS1L4vZ9uOJZWtS26mqGyfAfCvE=
SUQZOPrzwqVaEYuELhr7Z/cRTh0=
</data>
<key>hash2</key>
<data>
NFGxm6YjpGCjJNEfjv5SM7MyktNj/PHvSXflRV/5FPQ=
WBWD92kWeWBZQryXJRro9Jvi9658TsDl/cjdQNAbDnE=
</data>
</dict>
<key>Headers/MSACCrashHandlerSetupDelegate.h</key>
@@ -73,22 +85,22 @@
<dict>
<key>hash</key>
<data>
eHC+/SrZ0R08kZxHQSoVyQf+vCo=
r8P9kK348cdQnlFX6FacTW6y3+c=
</data>
<key>hash2</key>
<data>
y7g3W+WahfsOp6fIuAPSEK9JbhjeFSzuTLIVlH5ij2o=
ArA6Fp1CT6yjdmOgK79Q9jnEO6aqIZyUIjHFq1c5QRk=
</data>
</dict>
<key>Headers/MSACCrashesDelegate.h</key>
<dict>
<key>hash</key>
<data>
czYUE2OOoD3lc+2UHRPFMakb0jQ=
qnhKqY+vAsatzNxGZyoxFMmwIxI=
</data>
<key>hash2</key>
<data>
XWIFycuL8uPuweg15Kuzu0MAYjRG7O7p0VyVRzG0Ay0=
wBmXt8Cq5mUI+93edo6jk8yfyfYDxY35H+c4Lx6qjGE=
</data>
</dict>
<key>Headers/MSACErrorAttachmentLog+Utility.h</key>
@@ -124,15 +136,48 @@
Ph0QprvD6QWBekvlfshUpVdljO98TuiI8PRbZO/MB0Y=
</data>
</dict>
<key>Headers/MSACExceptionModel.h</key>
<dict>
<key>hash</key>
<data>
FGcXjyUYzvd/LDjl0hc2Ah+1D1Q=
</data>
<key>hash2</key>
<data>
T3IzEs/a04qDb742vNe8EJwFOZgOGMa8zyKFSCXT/Rc=
</data>
</dict>
<key>Headers/MSACStackFrame.h</key>
<dict>
<key>hash</key>
<data>
j8bbwC65keur+uW6rxfIERJNFWI=
</data>
<key>hash2</key>
<data>
mgx3oo8nZYPGWqp82VYFVJ5rj0oeEIiqnc+TOcled+I=
</data>
</dict>
<key>Headers/MSACWrapperCrashesHelper.h</key>
<dict>
<key>hash</key>
<data>
PRoMqamOgoTAX8mweVFBYStiziQ=
XjDlLOnOWP3EG0z+nuYQDxLEVcY=
</data>
<key>hash2</key>
<data>
co5bCCKJlZU9L5fVlCUmO7enl7tPeRzM3TjHJkNwn58=
fq9x4VE7FvWa3M3oH8XTAeaDiZdZYxv8CTdkt24maBE=
</data>
</dict>
<key>Headers/MSACWrapperExceptionModel.h</key>
<dict>
<key>hash</key>
<data>
fTPRyH4z/TDoTMVaRXo1TWACDzI=
</data>
<key>hash2</key>
<data>
blUKL+sJciIHT1DLWNSuktzjorY6OWNpl8ncsGosGd8=
</data>
</dict>
<key>Modules/module.modulemap</key>
@@ -9,12 +9,18 @@
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACStackFrame.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACExceptionModel.h"
#import "MSACStackFrame.h"
#import "MSACWrapperCrashesHelper.h"
#import "MSACWrapperExceptionModel.h"
#endif
@@ -14,6 +14,8 @@
#endif
@class MSACCrashesDelegate;
@class MSACExceptionModel;
@class MSACErrorAttachmentLog;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
@@ -69,6 +71,32 @@ typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
/**
* Track handled error.
*
* @param error error.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackError:(NSError *_Nonnull)error
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackError(_:properties:attachments:));
/**
* Track handled exception from custom exception model.
*
* @param exception custom model exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackException:(MSACExceptionModel *_Nonnull)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackException(_:properties:attachments:));
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
@@ -51,7 +51,7 @@ NS_SWIFT_NAME(CrashesDelegate)
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
@@ -0,0 +1,81 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_EXCEPTION_MODEL_H
#define MSAC_EXCEPTION_MODEL_H
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@class MSACStackFrame;
NS_SWIFT_NAME(ExceptionModel)
@interface MSACExceptionModel : NSObject <MSACSerializableObject>
/**
* Creates an instance of exception model.
*
* @param error error.
*
* @return A new instance of exception.
*/
- (instancetype)initWithError:(NSError *)error NS_SWIFT_NAME(init(withError:));
/**
* Creates an instance of exception model.
*
* @param exceptionType exception type.
* @param exceptionMessage exception message.
* @param stackTrace stack trace.
*
* @return A new instance of exception.
*/
- (instancetype)initWithType:(NSString *)exceptionType
exceptionMessage:(NSString *)exceptionMessage
stackTrace:(NSArray<NSString *> *)stackTrace
NS_SWIFT_NAME(init(withType:exceptionMessage:stackTrace:));
/**
* Creates an instance of exception model.
*
* @exception exception.
*
* @return A new instance of exception.
*/
- (instancetype)initWithException:(NSException *)exception NS_SWIFT_NAME(init(withException:));
/**
* Exception type.
*/
@property(nonatomic, copy) NSString *type;
/**
* Exception reason.
*/
@property(nonatomic, copy) NSString *message;
/**
* Raw stack trace. Sent when the frames property is either missing or unreliable.
*/
@property(nonatomic, copy) NSString *stackTrace;
/**
* Stack frames [optional].
*/
@property(nonatomic, strong) NSArray<MSACStackFrame *> *frames;
/**
* Checks if the object's values are valid.
*
* @return YES, if the object is valid.
*/
- (BOOL)isValid;
@end
#endif
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACStackFrame : NSObject <MSACSerializableObject>
/*
* Frame address [optional].
*/
@property(nonatomic, copy) NSString *address;
/*
* Symbolized code line [optional].
*/
@property(nonatomic, copy) NSString *code;
/*
* The fully qualified name of the Class containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *className;
/*
* The name of the method containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *methodName;
/*
* The line number of the source line containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSNumber *lineNumber;
/*
* The name of the file containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *fileName;
@end
@@ -13,7 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
@@ -25,7 +24,7 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
* The crash handler setup delegate.
*
*/
@property(class, nonatomic) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
@@ -65,20 +64,6 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
*/
+ (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.
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_WRAPPER_EXCEPTION_MODEL_H
#define MSAC_WRAPPER_EXCEPTION_MODEL_H
#if __has_include(<AppCenterCrashes/MSACExceptionModel.h>)
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACExceptionModel.h"
#import "MSACWrapperExceptionModel.h"
#endif
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACWrapperExceptionModel : MSACExceptionModel
/*
* Inner exceptions of this exception [optional].
*/
@property(nonatomic, strong) NSArray<MSACWrapperExceptionModel *> *innerExceptions;
/*
* Name of the wrapper SDK that emitted this exception.
* Consists of the name of the SDK and the wrapper platform, e.g. "appcenter.xamarin", "appcenter.react-native" [optional].
*/
@property(nonatomic, copy) NSString *wrapperSdkName;
@end
#endif
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H15</string>
<string>19H1323</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -9,12 +9,18 @@
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACStackFrame.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACExceptionModel.h"
#import "MSACStackFrame.h"
#import "MSACWrapperCrashesHelper.h"
#import "MSACWrapperExceptionModel.h"
#endif
@@ -14,6 +14,8 @@
#endif
@class MSACCrashesDelegate;
@class MSACExceptionModel;
@class MSACErrorAttachmentLog;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
@@ -69,6 +71,32 @@ typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
/**
* Track handled error.
*
* @param error error.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackError:(NSError *_Nonnull)error
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackError(_:properties:attachments:));
/**
* Track handled exception from custom exception model.
*
* @param exception custom model exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackException:(MSACExceptionModel *_Nonnull)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackException(_:properties:attachments:));
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
@@ -51,7 +51,7 @@ NS_SWIFT_NAME(CrashesDelegate)
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
@@ -0,0 +1,81 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_EXCEPTION_MODEL_H
#define MSAC_EXCEPTION_MODEL_H
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@class MSACStackFrame;
NS_SWIFT_NAME(ExceptionModel)
@interface MSACExceptionModel : NSObject <MSACSerializableObject>
/**
* Creates an instance of exception model.
*
* @param error error.
*
* @return A new instance of exception.
*/
- (instancetype)initWithError:(NSError *)error NS_SWIFT_NAME(init(withError:));
/**
* Creates an instance of exception model.
*
* @param exceptionType exception type.
* @param exceptionMessage exception message.
* @param stackTrace stack trace.
*
* @return A new instance of exception.
*/
- (instancetype)initWithType:(NSString *)exceptionType
exceptionMessage:(NSString *)exceptionMessage
stackTrace:(NSArray<NSString *> *)stackTrace
NS_SWIFT_NAME(init(withType:exceptionMessage:stackTrace:));
/**
* Creates an instance of exception model.
*
* @exception exception.
*
* @return A new instance of exception.
*/
- (instancetype)initWithException:(NSException *)exception NS_SWIFT_NAME(init(withException:));
/**
* Exception type.
*/
@property(nonatomic, copy) NSString *type;
/**
* Exception reason.
*/
@property(nonatomic, copy) NSString *message;
/**
* Raw stack trace. Sent when the frames property is either missing or unreliable.
*/
@property(nonatomic, copy) NSString *stackTrace;
/**
* Stack frames [optional].
*/
@property(nonatomic, strong) NSArray<MSACStackFrame *> *frames;
/**
* Checks if the object's values are valid.
*
* @return YES, if the object is valid.
*/
- (BOOL)isValid;
@end
#endif
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACStackFrame : NSObject <MSACSerializableObject>
/*
* Frame address [optional].
*/
@property(nonatomic, copy) NSString *address;
/*
* Symbolized code line [optional].
*/
@property(nonatomic, copy) NSString *code;
/*
* The fully qualified name of the Class containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *className;
/*
* The name of the method containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *methodName;
/*
* The line number of the source line containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSNumber *lineNumber;
/*
* The name of the file containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *fileName;
@end
@@ -13,7 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
@@ -25,7 +24,7 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
* The crash handler setup delegate.
*
*/
@property(class, nonatomic) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
@@ -65,20 +64,6 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
*/
+ (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.
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_WRAPPER_EXCEPTION_MODEL_H
#define MSAC_WRAPPER_EXCEPTION_MODEL_H
#if __has_include(<AppCenterCrashes/MSACExceptionModel.h>)
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACExceptionModel.h"
#import "MSACWrapperExceptionModel.h"
#endif
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACWrapperExceptionModel : MSACExceptionModel
/*
* Inner exceptions of this exception [optional].
*/
@property(nonatomic, strong) NSArray<MSACWrapperExceptionModel *> *innerExceptions;
/*
* Name of the wrapper SDK that emitted this exception.
* Consists of the name of the SDK and the wrapper platform, e.g. "appcenter.xamarin", "appcenter.react-native" [optional].
*/
@property(nonatomic, copy) NSString *wrapperSdkName;
@end
#endif
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H15</string>
<string>19H1323</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -9,12 +9,18 @@
#import <AppCenterCrashes/MSACCrashesDelegate.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog+Utility.h>
#import <AppCenterCrashes/MSACErrorAttachmentLog.h>
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACStackFrame.h>
#import <AppCenterCrashes/MSACWrapperCrashesHelper.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACCrashHandlerSetupDelegate.h"
#import "MSACCrashes.h"
#import "MSACCrashesDelegate.h"
#import "MSACErrorAttachmentLog+Utility.h"
#import "MSACErrorAttachmentLog.h"
#import "MSACExceptionModel.h"
#import "MSACStackFrame.h"
#import "MSACWrapperCrashesHelper.h"
#import "MSACWrapperExceptionModel.h"
#endif
@@ -14,6 +14,8 @@
#endif
@class MSACCrashesDelegate;
@class MSACExceptionModel;
@class MSACErrorAttachmentLog;
/**
* Custom block that handles the alert that prompts the user whether crash reports need to be processed or not.
@@ -69,6 +71,32 @@ typedef NS_ENUM(NSUInteger, MSACUserConfirmation) {
NS_SWIFT_NAME(Crashes)
@interface MSACCrashes : MSACServiceAbstract
/**
* Track handled error.
*
* @param error error.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackError:(NSError *_Nonnull)error
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackError(_:properties:attachments:));
/**
* Track handled exception from custom exception model.
*
* @param exception custom model exception.
* @param properties dictionary of properties.
* @param attachments a list of attachments.
*
* @return handled error ID.
*/
+ (NSString *_Nonnull)trackException:(MSACExceptionModel *_Nonnull)exception
withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties
attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments NS_SWIFT_NAME(trackException(_:properties:attachments:));
///-----------------------------------------------------------------------------
/// @name Testing Crashes Feature
///-----------------------------------------------------------------------------
@@ -51,7 +51,7 @@ NS_SWIFT_NAME(CrashesDelegate)
* @param errorReport The errorReport that App Center tried to send.
* @param error The error that occurred.
*/
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
- (void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(nullable NSError *)error;
/**
* Method to get the attachments associated to an error report.
@@ -0,0 +1,81 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_EXCEPTION_MODEL_H
#define MSAC_EXCEPTION_MODEL_H
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@class MSACStackFrame;
NS_SWIFT_NAME(ExceptionModel)
@interface MSACExceptionModel : NSObject <MSACSerializableObject>
/**
* Creates an instance of exception model.
*
* @param error error.
*
* @return A new instance of exception.
*/
- (instancetype)initWithError:(NSError *)error NS_SWIFT_NAME(init(withError:));
/**
* Creates an instance of exception model.
*
* @param exceptionType exception type.
* @param exceptionMessage exception message.
* @param stackTrace stack trace.
*
* @return A new instance of exception.
*/
- (instancetype)initWithType:(NSString *)exceptionType
exceptionMessage:(NSString *)exceptionMessage
stackTrace:(NSArray<NSString *> *)stackTrace
NS_SWIFT_NAME(init(withType:exceptionMessage:stackTrace:));
/**
* Creates an instance of exception model.
*
* @exception exception.
*
* @return A new instance of exception.
*/
- (instancetype)initWithException:(NSException *)exception NS_SWIFT_NAME(init(withException:));
/**
* Exception type.
*/
@property(nonatomic, copy) NSString *type;
/**
* Exception reason.
*/
@property(nonatomic, copy) NSString *message;
/**
* Raw stack trace. Sent when the frames property is either missing or unreliable.
*/
@property(nonatomic, copy) NSString *stackTrace;
/**
* Stack frames [optional].
*/
@property(nonatomic, strong) NSArray<MSACStackFrame *> *frames;
/**
* Checks if the object's values are valid.
*
* @return YES, if the object is valid.
*/
- (BOOL)isValid;
@end
#endif
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACStackFrame : NSObject <MSACSerializableObject>
/*
* Frame address [optional].
*/
@property(nonatomic, copy) NSString *address;
/*
* Symbolized code line [optional].
*/
@property(nonatomic, copy) NSString *code;
/*
* The fully qualified name of the Class containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *className;
/*
* The name of the method containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *methodName;
/*
* The line number of the source line containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSNumber *lineNumber;
/*
* The name of the file containing the execution point represented by this stack trace element [optional].
*/
@property(nonatomic, copy) NSString *fileName;
@end
@@ -13,7 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@class MSACErrorReport;
@class MSACErrorAttachmentLog;
@class MSACException;
/**
* This general class allows wrappers to supplement the Crashes SDK with their own behavior.
@@ -25,7 +24,7 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
* The crash handler setup delegate.
*
*/
@property(class, nonatomic) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
@property(class, nonatomic, weak) _Nullable id<MSACCrashHandlerSetupDelegate> crashHandlerSetupDelegate;
/**
* Gets the crash handler setup delegate.
@@ -65,20 +64,6 @@ NS_SWIFT_NAME(WrapperCrashesHelper)
*/
+ (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.
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import <Foundation/Foundation.h>
#ifndef MSAC_WRAPPER_EXCEPTION_MODEL_H
#define MSAC_WRAPPER_EXCEPTION_MODEL_H
#if __has_include(<AppCenterCrashes/MSACExceptionModel.h>)
#import <AppCenterCrashes/MSACExceptionModel.h>
#import <AppCenterCrashes/MSACWrapperExceptionModel.h>
#else
#import "MSACExceptionModel.h"
#import "MSACWrapperExceptionModel.h"
#endif
#if __has_include(<AppCenter/MSACSerializableObject.h>)
#import <AppCenter/MSACSerializableObject.h>
#else
#import "MSACSerializableObject.h"
#endif
@interface MSACWrapperExceptionModel : MSACExceptionModel
/*
* Inner exceptions of this exception [optional].
*/
@property(nonatomic, strong) NSArray<MSACWrapperExceptionModel *> *innerExceptions;
/*
* Name of the wrapper SDK that emitted this exception.
* Consists of the name of the SDK and the wrapper platform, e.g. "appcenter.xamarin", "appcenter.react-native" [optional].
*/
@property(nonatomic, copy) NSString *wrapperSdkName;
@end
#endif

Some files were not shown because too many files have changed in this diff Show More