This repository has been archived by the owner on Oct 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
80 changed files
with
768 additions
and
555 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
## 1.0-beta.6 (7/8/2015) | ||
|
||
* Add CHANGELOG.md | ||
* Update contract files to match newest schema version | ||
* Removed previously deprecated methods to set a custom userID | ||
* Minor bugfixes and improvements | ||
|
||
## 1.0-beta.5 (6/7/2014) | ||
|
||
* Important improvements to crash reports. | ||
* We now filter some pageviews from standard view controllers in order to reduce noise and make pageviews more useful. | ||
* Smaller refactorings and improvements. | ||
|
||
## 1.0-beta.4 (23/6/2015) | ||
|
||
* Allow for easier integration in most projects using the `@import ApplicationInsights;` syntax. This makes manual linking of system frameworks unnecessary! | ||
* Add feature to set common properties that will apply to all telemetry data items. | ||
|
||
```objectivec | ||
[MSAITelemetryManager setCommonProperties:@{@"custom info":@"some value"}]; | ||
``` | ||
|
||
* Allow for further customization of user context fields. | ||
Note that this means that the old way of setting the user ID, `setUserId:`, is now deprecated! | ||
|
||
```objectivec | ||
[[MSAIApplicationInsights sharedInstance] setUserWithConfigurationBlock:^(MSAIUser *user) { | ||
user.userId = @"your_user_id"; | ||
user.accountId = @"user@example.com"; | ||
}]; | ||
``` | ||
|
||
* Add support for unhandled C++ exceptions | ||
* Switch to sending data in JSON Stream format to improve compatibility with different server backends. | ||
* Improve crash reports by sending additional exception information. | ||
* Add instructions to Readme about how to setup the SDK with WatchKit extensions. | ||
* Add logging incase the developer tries to send objects that are not NSJSONSerialization compatible. | ||
* Fix issues with the backwars compatiblity of the nullability annotation. | ||
* Various other small improvements and fixes. | ||
|
||
## 1.0-beta.3 (8/5/2015) | ||
|
||
* Add new API to be able to manually set session and user IDs. | ||
|
||
``` objectivec | ||
[MSAIApplicationInsights setUserId:@"your_user_id"]; | ||
[MSAIApplicationInsights renewSessionWithId:@"4815162342"]; | ||
``` | ||
|
||
* Allow to specify the amount of time that an app has to have been in the background before a new session is triggered. | ||
|
||
``` objectivec | ||
[MSAIApplicationInsights setAppBackgroundTimeBeforeSessionExpires:60]; | ||
``` | ||
|
||
* Make our sending-retry policy more robust and only delete data on unrecoverable HTTP status codes. | ||
* Trigger saving of queued-up date when the app goes to the background since then there is a high probability it might be removed from memory by the OS. | ||
* Add our Xcode docset part of the downloaded archive. | ||
* Several small fixes, cleanups and optimizations under the hood. | ||
|
||
## 1.0-beta.2 (28/4/2015) | ||
|
||
* The size of the devices screen is now reported in physical pixels | ||
* Renamed umbrella-class and product to **ApplicationInsights** | ||
* Cleaned up code | ||
* Removed previously deprecated methods and classes | ||
* The order of stackframes is now reversed to appear in the portal correctly | ||
* Developer Mode for more ease during development/debugging | ||
* Includes Nullability warnings (learn more readin ([Apple's own blogpost]("https://developer.apple.com/swift/blog/?id=25") about this) | ||
* Add gzip-support to dramatically decrease data volume used to send data to the server | ||
* _Developer mode_ for ease of debugging | ||
* Setting a custom server now requires the complete URL to the server (e.g. https://yourdomin/something/tracking/) | ||
|
||
### Breaking Changes | ||
|
||
Starting with the first 1.0 stable release, we will start deprecating API instead of breaking old ones. | ||
|
||
* **[1.0-beta.2]** ```MSAIAppInsights``` was the the central entry-point to use the Application Insights SDK. It has been renamed to ```MSAIApplicationInsights```. | ||
* **[1.0-beta.2]** Setting the custom server URL now requires the complete URL to the server | ||
|
||
## 1.0-beta.1 (10/4/2015) | ||
|
||
- Add a mechanism to try and save not-yet-persisted events if the containing app crashes. The events will then be sent on next app start. | ||
- Simplify the way session IDs are handled in the background and make it more consistent. | ||
- Fix spelling in different places. | ||
* Please note: `trackEventWithName:properties:mesurements:` is now deprecated and replaced by `trackEventWithName:properties:measurements:` | ||
- Improve error logging when errors occur during sending. (Enable debug logging to see these) | ||
- Update the way we save data in the keychain for maximum compatibility. | ||
- Extend guides to add `Security` system framework. | ||
|
||
## 1.0-alpha.3 (26/3/2015) | ||
|
||
- Performance improvements | ||
- Expose configuarations: | ||
* Set serverURL programmatically | ||
* Automatic page view tracking | ||
* Set instrumentation key programmatically | ||
- Bug fixes | ||
* Use session id of previous session for crashes | ||
* Session context for page views | ||
* Prevent SDK from crashing if too many events are tracked | ||
- Add user context to payload | ||
- Breaking change: Rename MSAIMetricsManager to MSAITelemetryManager | ||
|
||
## 1.0-alpha.2 (25/2/2015) | ||
|
||
This pre-release version of the AppInsights iOS SDK adds crash reporting as a feature, as well as lots of improvements and enhancements around our abilities to send metrics data. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#import "MSAITestResult.h" | ||
#import "MSAIObject.h" | ||
#import "MSAITelemetryData.h" | ||
#import "MSAIDomain.h" | ||
|
||
@interface MSAIAvailabilityData : MSAIDomain <NSCoding> | ||
|
||
@property (nonatomic, copy) NSString *testRunId; | ||
@property (nonatomic, copy) NSString *testTimeStamp; | ||
@property (nonatomic, copy) NSString *testName; | ||
@property (nonatomic, copy) NSString *duration; | ||
@property (nonatomic, strong) MSAITestResult *result; | ||
@property (nonatomic, copy) NSString *runLocation; | ||
@property (nonatomic, copy) NSString *message; | ||
@property (nonatomic, copy) NSNumber *dataSize; | ||
@property (nonatomic, strong) NSDictionary *measurements; | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#import "MSAIAvailabilityData.h" | ||
/// Data contract class for type AvailabilityData. | ||
@implementation MSAIAvailabilityData | ||
|
||
/// Initializes a new instance of the class. | ||
- (instancetype)init { | ||
if(self = [super init]) { | ||
self.version = @2; | ||
self.properties = [NSDictionary new]; | ||
self.measurements = [NSDictionary new]; | ||
} | ||
return self; | ||
} | ||
|
||
/// | ||
/// Adds all members of this class to a dictionary | ||
/// @param dictionary to which the members of this class will be added. | ||
/// | ||
- (MSAIOrderedDictionary *)serializeToDictionary { | ||
MSAIOrderedDictionary *dict = [super serializeToDictionary]; | ||
if(self.testRunId != nil) { | ||
[dict setObject:self.testRunId forKey:@"testRunId"]; | ||
} | ||
if(self.testTimeStamp != nil) { | ||
[dict setObject:self.testTimeStamp forKey:@"testTimeStamp"]; | ||
} | ||
if(self.testName != nil) { | ||
[dict setObject:self.testName forKey:@"testName"]; | ||
} | ||
if(self.duration != nil) { | ||
[dict setObject:self.duration forKey:@"duration"]; | ||
} | ||
[dict setObject:[NSNumber numberWithInt:(int)self.result] forKey:@"result"]; | ||
if(self.runLocation != nil) { | ||
[dict setObject:self.runLocation forKey:@"runLocation"]; | ||
} | ||
if(self.message != nil) { | ||
[dict setObject:self.message forKey:@"message"]; | ||
} | ||
if(self.dataSize != nil) { | ||
[dict setObject:self.dataSize forKey:@"dataSize"]; | ||
} | ||
if(self.properties != nil) { | ||
[dict setObject:self.properties forKey:@"properties"]; | ||
} | ||
if(self.measurements != nil) { | ||
[dict setObject:self.measurements forKey:@"measurements"]; | ||
} | ||
return dict; | ||
} | ||
|
||
#pragma mark - NSCoding | ||
|
||
- (id)initWithCoder:(NSCoder *)coder { | ||
self = [super initWithCoder:coder]; | ||
if(self) { | ||
self.testRunId = [coder decodeObjectForKey:@"self.testRunId"]; | ||
self.testTimeStamp = [coder decodeObjectForKey:@"self.testTimeStamp"]; | ||
self.testName = [coder decodeObjectForKey:@"self.testName"]; | ||
self.duration = [coder decodeObjectForKey:@"self.duration"]; | ||
self.result = [coder decodeObjectForKey:@"self.result"]; | ||
self.runLocation = [coder decodeObjectForKey:@"self.runLocation"]; | ||
self.message = [coder decodeObjectForKey:@"self.message"]; | ||
self.dataSize = [coder decodeObjectForKey:@"self.dataSize"]; | ||
self.measurements = [coder decodeObjectForKey:@"self.measurements"]; | ||
} | ||
return self; | ||
} | ||
|
||
- (void)encodeWithCoder:(NSCoder *)coder { | ||
[super encodeWithCoder:coder]; | ||
[coder encodeObject:self.testRunId forKey:@"self.testRunId"]; | ||
[coder encodeObject:self.testTimeStamp forKey:@"self.testTimeStamp"]; | ||
[coder encodeObject:self.testName forKey:@"self.testName"]; | ||
[coder encodeObject:self.duration forKey:@"self.duration"]; | ||
[coder encodeObject:self.result forKey:@"self.result"]; | ||
[coder encodeObject:self.runLocation forKey:@"self.runLocation"]; | ||
[coder encodeObject:self.message forKey:@"self.message"]; | ||
[coder encodeObject:self.dataSize forKey:@"self.dataSize"]; | ||
[coder encodeObject:self.measurements forKey:@"self.measurements"]; | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.