Merge pull request #356 from bitstadium/master

Master
This commit is contained in:
Benjamin Scholtysik (Reimold)
2016-10-05 15:43:49 -07:00
committed by GitHub
16 changed files with 199 additions and 102 deletions

View File

@@ -277,7 +277,8 @@ NSString *const BITXamarinStackTraceDelimiter = @"Xamarin Exception Stack:";
if (codeType != nil)
break;
}
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
/* If we were unable to determine the code type, fall back on the legacy architecture value. */
if (codeType == nil) {
switch (report.systemInfo.architecture) {
@@ -303,7 +304,8 @@ NSString *const BITXamarinStackTraceDelimiter = @"Xamarin Exception Stack:";
lp64 = true;
break;
}
}
}
#pragma GCC diagnostic pop
}
{

View File

@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'HockeySDK-Source'
s.version = '4.1.1'
s.version = '4.1.2'
s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.'
s.description = <<-DESC
@@ -25,7 +25,7 @@ Pod::Spec.new do |s|
s.frameworks = 'AssetsLibrary', 'CoreGraphics', 'CoreTelephony', 'CoreText', 'MobileCoreServices', 'Photos', 'QuartzCore', 'QuickLook', 'Security', 'SystemConfiguration', 'UIKit'
s.libraries = 'c++', 'z'
s.vendored_frameworks = 'Vendor/CrashReporter.framework'
s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"96\\"" BITHOCKEY_C_BUILD="\\"96\\""} }
s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"97\\"" BITHOCKEY_C_BUILD="\\"97\\""} }
s.resource_bundle = { 'HockeySDKResources' => ['Resources/*.png', 'Resources/*.lproj'] }
s.preserve_paths = 'Resources', 'Support'
s.private_header_files = 'Classes/*Private.h'

View File

@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'HockeySDK'
s.version = '4.1.1'
s.version = '4.1.2'
s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.'
s.description = <<-DESC
@@ -32,7 +32,7 @@ Pod::Spec.new do |s|
s.subspec 'CrashOnlyLib' do |ss|
ss.frameworks = 'UIKit'
ss.libraries = 'z'
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Versions/A/Resources/HockeySDKResources.bundle/*.lproj'] }
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/*.lproj'] }
ss.vendored_frameworks = 'HockeySDK-iOS/HockeySDKCrashOnly/HockeySDK.framework'
end
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
end
s.subspec 'DefaultLib' do |ss|
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Versions/A/Resources/HockeySDKResources.bundle/*.png', 'HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Versions/A/Resources/HockeySDKResources.bundle/*.lproj'] }
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/*.png', 'HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/*.lproj'] }
ss.frameworks = 'AssetsLibrary', 'CoreGraphics', 'CoreText', 'CoreTelephony', 'MobileCoreServices', 'QuartzCore', 'QuickLook', 'UIKit'
ss.libraries = 'z'
@@ -49,7 +49,7 @@ Pod::Spec.new do |s|
end
s.subspec 'AllFeaturesLib' do |ss|
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDKAllFeatures/HockeySDK.embeddedframework/HockeySDK.framework/Versions/A/Resources/HockeySDKResources.bundle/*.png', 'HockeySDK-iOS/HockeySDKAllFeatures/HockeySDK.embeddedframework/HockeySDK.framework/Versions/A/Resources/HockeySDKResources.bundle/*.lproj'] }
ss.resource_bundle = { 'HockeySDKResources' => ['HockeySDK-iOS/HockeySDKAllFeatures/HockeySDK.embeddedframework/HockeySDKResources.bundle/*.png', 'HockeySDK-iOS/HockeySDKAllFeatures/HockeySDK.embeddedframework/HockeySDKResources.bundle/*.lproj'] }
ss.frameworks = 'AssetsLibrary', 'CoreGraphics', 'CoreText', 'CoreTelephony', 'MobileCoreServices', 'Photos', 'QuartzCore', 'QuickLook', 'UIKit'
ss.libraries = 'z'

View File

@@ -2,18 +2,20 @@
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Version](http://cocoapod-badges.herokuapp.com/v/HockeySDK/badge.png)](http://cocoadocs.org/docsets/HockeySDK)
## Version 4.1.1
## Version 4.1.2
- [Changelog](http://www.hockeyapp.net/help/sdk/ios/4.1.1/docs/docs/Changelog.html)
- [Changelog](http://www.hockeyapp.net/help/sdk/ios/4.1.2/docs/docs/Changelog.html)
**NOTE** If your are using the binary integration of our SDK, make sure that the `HockeySDKResources.bundle` inside the `HockeySDK.embeddedframework`-folder has been added to your application.
### Feedback and iOS 10
**4.1.1 of the HockeySDK removes the Feedback feature from the default version of the SDK.**
The reason for this is that iOS 10 requires developers to add a usage string to their Info.plist in case they include the photos framework in their app. If this string is missing, the app will be rejected when submitting the app to the app store. As HockeyApp's Feedback feature includes a dependency to the photos framework. This means that if you include HockeyApp into your app, adding the usage string would be a requirement even for developers who don't use the Feedback feature. If you don't use Feedback in your app, simply upgrade HockeySDK to version 4.1.1. If you are using Feedback, please have a look at the [Feedback section](#feedback).
The reason for this is that iOS 10 requires developers to add a usage string to their Info.plist in case they include the photos framework in their app. If this string is missing, the app will be rejected when submitting the app to the app store. As HockeyApp's Feedback feature includes a dependency to the photos framework. This means that if you include HockeyApp into your app, adding the usage string would be a requirement even for developers who don't use the Feedback feature. If you don't use Feedback in your app, simply upgrade HockeySDK to version 4.1.1 or newer. If you are using Feedback, please have a look at the [Feedback section](#feedback).
We **strongly** suggest upgrading to version 4.1.1 of the SDK. Not specifying the usage description string and using previous versions of the HockeySDK-iOS will cause the app to crash at runtime as soon as the user taps the "attach image"-button or in case you have enabled `BITFeedbackObservationModeOnScreenshot`.
We **strongly** suggest upgrading to version 4.1.1 or a later version of the SDK. Not specifying the usage description string and using previous versions of the HockeySDK-iOS will cause the app to crash at runtime as soon as the user taps the "attach image"-button or in case you have enabled `BITFeedbackObservationModeOnScreenshot`.
If you are using an older version of the SDK, you have to add a `NSPhotoLibraryUsageDescription` to your `Info.plist` to avoid a AppStore rejection during upload of your app (please have a look at the [Feedback section](#feedback)).
If you are using an older version of the SDK, you must add a `NSPhotoLibraryUsageDescription` to your `Info.plist` to avoid a AppStore rejection during upload of your app (please have a look at the [Feedback section](#feedback)).
## Introduction
@@ -82,7 +84,7 @@ From our experience, 3rd-party libraries usually reside inside a subdirectory (l
The SDK comes in four flavours:
* Default SDK without Feedback `HockeySDK.embeddedframework`
* Default SDK without Feedback: `HockeySDK.embeddedframework`
* Full featured SDK with Feedback: `HockeySDK.embeddedframework` in the subfolder `HockeySDKAllFeatures`.
* Crash reporting only: `HockeySDK.framework` in the subfolder `HockeySDKCrashOnly`.
* Crash reporting only for extensions: `HockeySDK.framework` in the subfolder `HockeySDKCrashOnlyExtension` (which is required to be used for extensions).
@@ -283,6 +285,8 @@ To add HockeySDK to your project, simply put this line into your `Cartfile`:
and then follow the steps described in the [Carthage documentation](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos).
For now, this will integrate the **full-featured SDK** so you must include the `NSPhotoLibraryUsageDescription` and read the [feedback section](#feedback).
<a id="extensions"></a>
### 3.4 iOS Extensions
@@ -385,7 +389,7 @@ The following options only show some of possibilities to interact and fine-tune
#### 3.6.1 Disable Crash Reporting
The HockeySDK enables crash reporting **per default**. Crashes will be immediately sent to the server the next time the app is launched.
To provide you with the best crash reporting, we are using [PLCrashReporter]("https://github.com/plausiblelabs/plcrashreporter") in [Version 1.2 / Commit 356901d7f3ca3d46fbc8640f469304e2b755e461]("https://github.com/plausiblelabs/plcrashreporter/commit/356901d7f3ca3d46fbc8640f469304e2b755e461").
To provide you with the best crash reporting, we are using [PLCrashReporter]("https://github.com/plausiblelabs/plcrashreporter") in [Version 1.3 / Commit 05d34741d3a90bbed51214983110943831ae5943]("https://github.com/plausiblelabs/plcrashreporter/commit/05d34741d3a90bbed51214983110943831ae5943").
This feature can be disabled as follows:
@@ -467,9 +471,11 @@ and set the delegate:
### 3.7 User Metrics
HockeyApp automatically provides you with nice, intelligible, and informative metrics about how your app is used and by whom.
- **Sessions**: A new session is tracked by the SDK whenever the containing app is restarted (this refers to a 'cold start', i.e. when the app has not already been in memory prior to being launched) or whenever it becomes active again after having been in the background for 20 seconds or more.
- **Users**: The SDK anonymously tracks the users of your app by creating a random UUID that is then securely stored in the iOS keychain. Because this anonymous ID is stored in the keychain it persists across reinstallations.
- **Custom Events**: With HockeySDK 4.1.0 you can now track Custom Events in your app, understand user actions and see the aggregates on the HockeyApp portal.
- **Batching & offline behavior**: The SDK batches up to 50 events or waits for 15s and then persist and send the events, whichever comes first. So for sessions, this might actually mean we send 1 single event per batch. If you are sending Custom Events, it can be 1 session event plus X of your Custom Events (up to 50 events per batch total). In case the device is offline, up to 300 events are stored until the SDK starts to drop new events.
Just in case you want to opt-out of the automatic collection of anonymous users and sessions statistics, there is a way to turn this functionality off at any time:
@@ -508,7 +514,7 @@ metricsManager.trackEventWithName(eventName)
#### 3.7.2 Attaching custom properties and measurements to a custom event
It's possible to attach porperties and/or measurements to a custom event.
It's possible to attach properties and/or measurements to a custom event. There is one limitation to attaching properties and measurements. They currently don't show up in the HockeyApp dashboard but you have to link your app to Application Insights to be able to query them. Please have a look at [our blogpost](https://www.hockeyapp.net/blog/2016/08/30/custom-events-public-preview.html) to find out how to do that.
- Properties have to be a string.
- Measurements have to be of a numeric type.
@@ -538,7 +544,6 @@ let metricsManager = BITHockeyManager.sharedHockeyManager().metricsManager
metricsManager.trackEventWithName(eventName, properties: myProperties, myMeasurements: measurements)
```
<a name="feedback"></a>
### 3.8 Feedback
@@ -629,7 +634,7 @@ To check if data is send properly to HockeyApp and also see some additional SDK
<a id="documentation"></a>
## 4. Documentation
Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/4.1.1/index.html).
Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/4.1.2/index.html).
<a id="troubleshooting"></a>
## 5.Troubleshooting
@@ -643,7 +648,7 @@ Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/
Make sure none of the following files are copied into your app bundle, check under app target, `Build Phases`, `Copy Bundle Resources` or in the `.app` bundle after building:
- `HockeySDK.framework` (except if you build a dynamic framework version of the SDK yourself!)
- `de.bitstadium.HockeySDK-iOS-4.1.1.docset`
- `de.bitstadium.HockeySDK-iOS-4.1.2.docset`
### Feature are not working as expected

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
BUILD_NUMBER = 96
VERSION_STRING = 4.1.1
BUILD_NUMBER = 97
VERSION_STRING = 4.1.2
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS) HOCKEYSDK_CONFIGURATION_$(CONFIGURATION) BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\""
BIT_ARM_ARCHS = armv7 armv7s arm64
BIT_SIM_ARCHS = x86_64 i386
@@ -16,4 +16,4 @@ OTHER_CFLAGS[sdk=iphonesimulator10.*] = $(HOCKEYSDK_WARNING_FLAGS) -fembed-bitco
OTHER_LDFLAGS=$(inherited) -framework CrashReporter -framework AssetsLibrary -framework CoreTelephony -framework CoreText -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework Photos -framework QuartzCore -framework QuickLook -framework Security -framework SystemConfiguration -framework UIKit -lc++ -lz
HOCKEYSDK_DOCSET_NAME=HockeySDK-iOS
HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS=$(inherited) $(XCODEBUILD_GCC_PREPROCESSOR_DEFINITIONS)
HOCKEYSDK_WARNING_FLAGS = -Wshorten-64-to-32 -Wall
HOCKEYSDK_WARNING_FLAGS = -Wshorten-64-to-32 -Wall

View File

@@ -116,6 +116,8 @@
// Regular icon names
NSString *validIconPath = @"AppIcon";
NSString *validIconPath2x = @"AppIcon@2x";
NSString *expected = ([UIScreen mainScreen].scale == 2.0f) ? validIconPath2x : validIconPath;
// No valid icons defined at all
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:nil];
@@ -133,7 +135,8 @@
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil];
resultString = bit_validAppIconFilename(mockBundle, resourceBundle);
assertThat(resultString, equalTo(validIconPath2x));
assertThat(resultString, equalTo(expected));
// CFBundleIcons contains valid dictionary filenames
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]];
@@ -148,7 +151,7 @@
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil];
resultString = bit_validAppIconFilename(mockBundle, resourceBundle);
assertThat(resultString, equalTo(validIconPath2x));
assertThat(resultString, equalTo(expected));
// CFBundleIcons contains valid filenames
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]];
@@ -157,7 +160,7 @@
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil];
resultString = bit_validAppIconFilename(mockBundle, resourceBundle);
assertThat(resultString, equalTo(validIconPath2x));
assertThat(resultString, equalTo(expected));
// CFBundleIcon contains valid filename
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]];
@@ -166,7 +169,7 @@
[given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:validIconPath];
resultString = bit_validAppIconFilename(mockBundle, resourceBundle);
assertThat(resultString, equalTo(validIconPath2x));
assertThat(resultString, equalTo(expected));
}
#ifndef CI

View File

@@ -1,7 +1,7 @@
#include "HockeySDK.xcconfig"
BUILD_NUMBER = 96
VERSION_STRING = 4.1.1
BUILD_NUMBER = 97
VERSION_STRING = 4.1.2
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS) HOCKEYSDK_CONFIGURATION_$(CONFIGURATION) BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\""
BIT_ARM_ARCHS = armv7 armv7s arm64
BIT_SIM_ARCHS = x86_64 i386

View File

@@ -95,7 +95,13 @@ typedef enum {
PLCrashReporterErrorCrashReportInvalid = 2,
/** An attempt to use a resource which was in use at the time in a manner which would have conflicted with the request. */
PLCrashReporterErrorResourceBusy = 3
PLCrashReporterErrorResourceBusy = 3,
/** The requested resource could not be found. */
PLCRashReporterErrorNotFound = 4,
/** Allocation failed. */
PLCRashReporterErrorInsufficientMemory = 4
} PLCrashReporterError;

View File

@@ -52,6 +52,12 @@
# define PLCR_CPP_BEGIN_NS namespace plcrash {
# define PLCR_CPP_END_NS }
# endif
#
/** @internal Define the plcrash::async namespace, automatically inserting an inline namespace containing the configured PLCRASHREPORTER_PREFIX, if any. */
# define PLCR_CPP_BEGIN_ASYNC_NS PLCR_CPP_BEGIN_NS namespace async {
/** @internal Close the definition of the `plcrash::async` namespace (and the PLCRASHREPORTER_PREFIX inline namespace, if any). */
# define PLCR_CPP_END_ASYNC_NS PLCR_CPP_END_NS }
#endif
#ifdef __clang__
@@ -60,12 +66,56 @@
# define PLCR_PRAGMA_CLANG(_p)
#endif
#ifdef __clang__
# define PLCR_DEPRECATED __attribute__((deprecated))
#else
# define PLCR_DEPRECATED
#endif
#if defined(__clang__) || defined(__GNUC__)
# define PLCR_UNUSED __attribute__((unused))
#else
# define PLCR_UNUSED
#endif
#ifdef PLCR_PRIVATE
/**
* Marks a definition as deprecated only for for external clients, allowing
* uses of it internal fo the framework.
*/
#define PLCR_EXTERNAL_DEPRECATED
/**
* @internal
* A macro to put above a definition marked PLCR_EXTERNAL_DEPRECATED that will
* silence warnings about there being a deprecation documentation marker but the
* definition not being marked deprecated.
*/
# define PLCR_EXTERNAL_DEPRECATED_NOWARN_PUSH() \
PLCR_PRAGMA_CLANG("clang diagnostic push"); \
PLCR_PRAGMA_CLANG("clang diagnostic ignored \"-Wdocumentation-deprecated-sync\"")
/**
* @internal
* A macro to put below a definition marked PLCR_EXTERNAL_DEPRECATED that will
* silence warnings about there being a deprecation documentation marker but the
* definition not being marked deprecated.
*/
# define PLCR_EXTERNAL_DEPRECATED_NOWARN_POP() PLCR_PRAGMA_CLANG("clang diagnostic pop")
#else
# define PLCR_EXTERNAL_DEPRECATED PLCR_DEPRECATED
# define PLCR_EXTERNAL_DEPRECATED_NOWARN_PUSH()
# define PLCR_EXTERNAL_DEPRECATED_NOWARN_PUSH()
#endif /* PLCR_PRIVATE */
#ifdef PLCR_PRIVATE
# if defined(__clang__) && __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
# define PLCR_FALLTHROUGH [[clang::fallthrough]]
# else
# define PLCR_FALLTHROUGH do {} while (0)
# endif
#endif
#ifdef PLCR_PRIVATE
/**
* @internal

View File

@@ -247,8 +247,8 @@
#define plcrash_nasync_image_list_free PLNS(plcrash_nasync_image_list_free)
#define plcrash_nasync_image_list_init PLNS(plcrash_nasync_image_list_init)
#define plcrash_nasync_image_list_remove PLNS(plcrash_nasync_image_list_remove)
#define plcrash_nasync_macho_free PLNS(plcrash_nasync_macho_free)
#define plcrash_nasync_macho_init PLNS(plcrash_nasync_macho_init)
#define plcrash_async_macho_free PLNS(plcrash_async_macho_free)
#define plcrash_async_macho_init PLNS(plcrash_async_macho_init)
#define plcrash_populate_error PLNS(plcrash_populate_error)
#define plcrash_populate_mach_error PLNS(plcrash_populate_mach_error)
#define plcrash_populate_posix_error PLNS(plcrash_populate_posix_error)

View File

@@ -27,6 +27,8 @@
*/
#import <Foundation/Foundation.h>
#include "PLCrashMacros.h"
@class PLCrashReportProcessorInfo;
/**
* @ingroup constants
@@ -55,7 +57,7 @@ typedef enum {
*
* Indicates the architecture under which a Crash Log was generated.
*
* @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports
* @note The architecture value has been deprecated in v1.1 and later crash reports. All new reports
* will make use of the new PLCrashReportProcessorInfo CPU type encodings.
*
* @internal
@@ -77,7 +79,7 @@ typedef enum {
* values.
* @sa PLCrashReportArchitectureARMv6
*/
PLCrashReportArchitectureARM = PLCrashReportArchitectureARMv6,
PLCrashReportArchitectureARM PLCR_DEPRECATED = PLCrashReportArchitectureARMv6,
/** PPC */
PLCrashReportArchitecturePPC = 3,
@@ -94,7 +96,9 @@ typedef enum {
extern PLCrashReportOperatingSystem PLCrashReportHostOperatingSystem;
extern PLCrashReportArchitecture PLCrashReportHostArchitecture;
PLCR_EXTERNAL_DEPRECATED_NOWARN_PUSH();
extern PLCrashReportArchitecture PLCrashReportHostArchitecture PLCR_EXTERNAL_DEPRECATED;
PLCR_EXTERNAL_DEPRECATED_NOWARN_PUSH();
@interface PLCrashReportSystemInfo : NSObject {
@private
@@ -112,17 +116,27 @@ extern PLCrashReportArchitecture PLCrashReportHostArchitecture;
/** Date crash report was generated. May be nil if the date is unknown. */
NSDate *_timestamp;
/** Processor information. */
PLCrashReportProcessorInfo *_processorInfo;
}
- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem
operatingSystemVersion: (NSString *) operatingSystemVersion
architecture: (PLCrashReportArchitecture) architecture
timestamp: (NSDate *) timestamp;
timestamp: (NSDate *) timestamp PLCR_DEPRECATED;
- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem
operatingSystemVersion: (NSString *) operatingSystemVersion
operatingSystemBuild: (NSString *) operatingSystemBuild
architecture: (PLCrashReportArchitecture) architecture
timestamp: (NSDate *) timestamp PLCR_DEPRECATED;
- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem
operatingSystemVersion: (NSString *) operatingSystemVersion
operatingSystemBuild: (NSString *) operatingSystemBuild
architecture: (PLCrashReportArchitecture) architecture
processorInfo: (PLCrashReportProcessorInfo *) processorInfo
timestamp: (NSDate *) timestamp;
/** The operating system. */
@@ -137,9 +151,13 @@ extern PLCrashReportArchitecture PLCrashReportHostArchitecture;
/** Architecture. @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports
* include the CPU type as part of the crash report's machine info structure, using the PLCrashReportProcessorInfo
* extensible encoding. */
@property(nonatomic, readonly) PLCrashReportArchitecture architecture;
@property(nonatomic, readonly) PLCrashReportArchitecture architecture PLCR_DEPRECATED;
/** Date and time that the crash report was generated. This may be unavailable, and this property will be nil. */
@property(nonatomic, readonly) NSDate *timestamp;
/** The processor type. For v1.2 reports and later, this is an alias to the machine info's processorInfo.
* For earlier reports, this will be synthesized from the deprecated architecture property. */
@property(nonatomic, readonly) PLCrashReportProcessorInfo *processorInfo;
@end

View File

@@ -30,6 +30,7 @@
#import <mach/mach.h>
#import "PLCrashReporterConfig.h"
#import "PLCrashMacros.h"
@class PLCrashMachExceptionServer;
@class PLCrashMachExceptionPortSet;
@@ -44,7 +45,7 @@
* @param uap The crash's threads context.
* @param context The API client's supplied context value.
*
* @sa @ref async_safety
* @sa The @ref async_safety documentation.
* @sa PLCrashReporter::setPostCrashCallbacks:
*/
typedef void (*PLCrashReporterPostCrashSignalCallback)(siginfo_t *info, ucontext_t *uap, void *context);
@@ -55,7 +56,7 @@ typedef void (*PLCrashReporterPostCrashSignalCallback)(siginfo_t *info, ucontext
* This structure contains callbacks supported by PLCrashReporter to allow the host application to perform
* additional tasks prior to program termination after a crash has occured.
*
* @sa @ref async_safety
* @sa The @ref async_safety documentation.
*/
typedef struct PLCrashReporterCallbacks {
/** The version number of this structure. If not one of the defined version numbers for this type, the behavior
@@ -87,7 +88,7 @@ typedef struct PLCrashReporterCallbacks {
/** YES if the crash reporter has been enabled */
BOOL _enabled;
#if PLCRASH_FEATURE_MACH_EXCEPTIONS
/** The backing Mach exception server, if any. Nil if the reporter has not been enabled, or if
* the configured signal handler type is not PLCrashReporterSignalHandlerTypeMach. */
@@ -110,7 +111,7 @@ typedef struct PLCrashReporterCallbacks {
NSString *_crashReportDirectory;
}
+ (PLCrashReporter *) sharedReporter;
+ (PLCrashReporter *) sharedReporter PLCR_DEPRECATED;
- (instancetype) initWithConfiguration: (PLCrashReporterConfig *) config;
@@ -121,9 +122,11 @@ typedef struct PLCrashReporterCallbacks {
- (NSData *) generateLiveReportWithThread: (thread_t) thread;
- (NSData *) generateLiveReportWithThread: (thread_t) thread error: (NSError **) outError;
- (NSData *) generateLiveReportWithThread: (thread_t) thread exception: (NSException *) exception error: (NSError **) outError;
- (NSData *) generateLiveReport;
- (NSData *) generateLiveReportAndReturnError: (NSError **) outError;
- (NSData *) generateLiveReportWithException: (NSException *) exception error: (NSError **) outError;
- (BOOL) purgePendingCrashReport;
- (BOOL) purgePendingCrashReportAndReturnError: (NSError **) outError;

View File

@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>14F27</string>
<string>15G1004</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -27,16 +27,16 @@
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>7A220</string>
<string>7D1014</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>15A278</string>
<string>15E60</string>
<key>DTSDKName</key>
<string>macosx10.11</string>
<key>DTXcode</key>
<string>0700</string>
<string>0731</string>
<key>DTXcodeBuild</key>
<string>7A220</string>
<string>7D1014</string>
</dict>
</plist>

View File

@@ -1,3 +1,13 @@
# 4.1.2
- [NEW] New `shouldDisplayUpdateAlertForUpdateManager`-API [#339](https://github.com/bitstadium/HockeySDK-iOS/pull/339) to make the moment of appearance for custom update UI even more customizable.
- [IMPROVEMENT] Fix static analyzer warnings. [#351](https://github.com/bitstadium/HockeySDK-iOS/pull/351)
- [IMPROVEMENT] Internal structure of embedded frameworks changed [#352](https://github.com/bitstadium/HockeySDK-iOS/pull/352)
- [IMPROVEMENT] Upgrade to PLCrashReporter 1.3
- [BUGFIX] Enable bitcode in all configurations [#344](https://github.com/bitstadium/HockeySDK-iOS/pull/344)
- [BUGFIX] Fixed anonymisation of binary paths when running in the simulator [#347](https://github.com/bitstadium/HockeySDK-iOS/pull/347)
- - [BUGFIX] Rename configurations to not break Carthage integration [#353](https://github.com/bitstadium/HockeySDK-iOS/pull/353)
## 4.1.1
**Attention** Due to changes in iOS 10, it is now necessary to include the `NSPhotoLibraryUsageDescription` in your app's Info.plist file if you want to use HockeySDK's Feedback feature. Since using the feature without the plist key present could lead to an App Store rejection, our default CocoaPods configuration does not include the Feedback feature anymore.