Skip to content

Commit

Permalink
Merge pull request #241 from rollbar/release
Browse files Browse the repository at this point in the history
Release 2.4.0
  • Loading branch information
matux authored Nov 29, 2022
2 parents dd8265f + 4fcda62 commit b06f373
Show file tree
Hide file tree
Showing 123 changed files with 8,789 additions and 2,745 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,5 @@ build_wrapper_output_directory/
_ General AUL Entries Bulk Capture.txt

_ AUL Entries Capture Samples.txt

.build/
44 changes: 20 additions & 24 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,33 @@

The change log has moved to this repo's [GitHub Releases Page](https://github.com/rollbar/rollbar-apple/releases).

## Release Notes Tagging Conventions

1. Every entry within the PackageReleaseNotes element is expected to be started with
at least one of the tags listed:

feat: A new feature
fix: A bug fix
docs: Documentation only changes
style: Changes that do not affect the meaning of the code
refactor: A code change that neither a bug fix nor a new feature
perf: A code change that improves performance
test: Adding or modifying unit test code
chore: Changes to the build process or auxiliary tools and libraries such as documentation generation, etc.

2. Every entry within the PackageReleaseNotes element is expected to be tagged with
EITHER
"resolve #GITHUB_ISSUE_NUMBER:" - meaning completely addresses the GitHub issue
OR
"ref #GITHUB_ISSUE_NUMBER:" - meaning relevant to the GitHub issue
depending on what is more appropriate in each case.

## Release Notes

### 2.4.0
- New SDK Demos for iOS Swift and Objective-C.
- Fixed a rare crash during JSON serialization.
- More robust and more flexible SDK reconfigurability.
- Thread safety by design.
- Fully independent configurability of each individual instance of a logger.
- Flexible and standardized rate limiting control (both locally configured and server enforced).
- Structured payload storage based on Sqlite instead of a flat text file.
- Improved local payload logging based on developer options of a config object. Separately for all the incoming vs transmitted vs dropped payloads.
- Improved internal diagnostics of the SDK with reach debug build assertions.
- Ooptimized payload modification implementation.
- Improved performance of the RollbarThread.
- Improved internal SDK recovery from any unforeseen internal SDK exceptions/errors (including during processing of totally custom user-specified data within a payload).
- General codebase code quality and maintainability improvements.
- A higher level of code reuse.
- And more...

### 2.3.4

- fix: resolve #218 - Failsafe to ensure obj is not nil when creating dict literal

### 2.3.3

- fix: resolve #190 - Fix Cocoapods build warnings in RollbarNotifier
- fix: resolve #191 - Fix Cocoapods build warnings in RollbarCommon
- fix: resolve #190 - Fix Cocoapods build warnings in RollbarNotifier
- fix: resolve #191 - Fix Cocoapods build warnings in RollbarCommon
- fix: resolve #192 - Fix SonarCloud detected bugs

### 2.3.2
Expand Down Expand Up @@ -76,7 +72,7 @@ The change log has moved to this repo's [GitHub Releases Page](https://github.co

### 2.1.0

- feat: resolve #141 - Apply developer options of the persisted payload when sending the payload
- feat: resolve #141 - Apply developer options of the persisted payload when sending the payload
- feat: resolve #133 - Implement RollbarCocoaLumberjack module
- test: resolve #134 - Implement unit tests for RollbarCocoaLumberjack
- fix: resolve #136 - RollbarPLCrashReporter.init() no longer available
Expand Down
16 changes: 0 additions & 16 deletions Demos/RollbarDemoSettings.h

This file was deleted.

8 changes: 0 additions & 8 deletions Demos/RollbarDemoSettings.swift

This file was deleted.

48 changes: 33 additions & 15 deletions Demos/iosAppObjC/iosAppObjC.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
objects = {

/* Begin PBXBuildFile section */
3BDB825A292D67900093AC9D /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BDB8258292D67900093AC9D /* SceneDelegate.m */; };
5533980A2627F4670031D02C /* RollbarPLCrashReporter in Frameworks */ = {isa = PBXBuildFile; productRef = 553398092627F4670031D02C /* RollbarPLCrashReporter */; };
55684F702553B4C400F82F34 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 55684F6F2553B4C400F82F34 /* AppDelegate.m */; };
55684F732553B4C400F82F34 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 55684F722553B4C400F82F34 /* SceneDelegate.m */; };
55684F762553B4C400F82F34 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 55684F752553B4C400F82F34 /* ViewController.m */; };
55684F792553B4C400F82F34 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 55684F772553B4C400F82F34 /* Main.storyboard */; };
55684F7B2553B4C700F82F34 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 55684F7A2553B4C700F82F34 /* Assets.xcassets */; };
Expand All @@ -22,21 +22,20 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
3BDB8258292D67900093AC9D /* SceneDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
3BDB8259292D67900093AC9D /* SceneDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
3BDB825B292E34990093AC9D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
55684F6B2553B4C400F82F34 /* iosAppObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosAppObjC.app; sourceTree = BUILT_PRODUCTS_DIR; };
55684F6E2553B4C400F82F34 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
55684F6F2553B4C400F82F34 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
55684F712553B4C400F82F34 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
55684F722553B4C400F82F34 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
55684F742553B4C400F82F34 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
55684F752553B4C400F82F34 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
55684F782553B4C400F82F34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
55684F7A2553B4C700F82F34 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
55684F7D2553B4C700F82F34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
55684F7F2553B4C700F82F34 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
55684F802553B4C700F82F34 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
55684F9B2553BD1B00F82F34 /* iosAppObjC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = iosAppObjC.entitlements; sourceTree = "<group>"; };
55684F9C2553BD1C00F82F34 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; };
55C1B42127C5C95000017B22 /* RollbarDemoSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RollbarDemoSettings.h; path = ../../RollbarDemoSettings.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -75,18 +74,17 @@
55684F6D2553B4C400F82F34 /* iosAppObjC */ = {
isa = PBXGroup;
children = (
55C1B42127C5C95000017B22 /* RollbarDemoSettings.h */,
3BDB825B292E34990093AC9D /* Info.plist */,
55684F9B2553BD1B00F82F34 /* iosAppObjC.entitlements */,
55684F6E2553B4C400F82F34 /* AppDelegate.h */,
55684F6F2553B4C400F82F34 /* AppDelegate.m */,
55684F712553B4C400F82F34 /* SceneDelegate.h */,
55684F722553B4C400F82F34 /* SceneDelegate.m */,
3BDB8259292D67900093AC9D /* SceneDelegate.h */,
3BDB8258292D67900093AC9D /* SceneDelegate.m */,
55684F742553B4C400F82F34 /* ViewController.h */,
55684F752553B4C400F82F34 /* ViewController.m */,
55684F772553B4C400F82F34 /* Main.storyboard */,
55684F7A2553B4C700F82F34 /* Assets.xcassets */,
55684F7C2553B4C700F82F34 /* LaunchScreen.storyboard */,
55684F7F2553B4C700F82F34 /* Info.plist */,
55684F802553B4C700F82F34 /* main.m */,
);
path = iosAppObjC;
Expand Down Expand Up @@ -178,7 +176,7 @@
55684F762553B4C400F82F34 /* ViewController.m in Sources */,
55684F702553B4C400F82F34 /* AppDelegate.m in Sources */,
55684F812553B4C700F82F34 /* main.m in Sources */,
55684F732553B4C400F82F34 /* SceneDelegate.m in Sources */,
3BDB825A292D67900093AC9D /* SceneDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -238,7 +236,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
Expand All @@ -255,10 +253,12 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
SDKROOT = iphoneos;
};
name = Debug;
Expand Down Expand Up @@ -308,9 +308,11 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
Expand All @@ -324,12 +326,20 @@
CODE_SIGN_ENTITLEMENTS = iosAppObjC/iosAppObjC.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = LDX6L68VZJ;
CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = 6B5NER795L;
INFOPLIST_FILE = iosAppObjC/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UIRequiredDeviceCapabilities = armv7;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -345,12 +355,20 @@
CODE_SIGN_ENTITLEMENTS = iosAppObjC/iosAppObjC.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = LDX6L68VZJ;
CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = 6B5NER795L;
INFOPLIST_FILE = iosAppObjC/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UIRequiredDeviceCapabilities = armv7;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
10 changes: 1 addition & 9 deletions Demos/iosAppObjC/iosAppObjC/AppDelegate.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
//
// AppDelegate.h
// iosAppObjC
//
// Created by Andrey Kornich on 2020-11-04.
//

#import <UIKit/UIKit.h>
@import UIKit;

@interface AppDelegate : UIResponder <UIApplicationDelegate>


@end

101 changes: 17 additions & 84 deletions Demos/iosAppObjC/iosAppObjC/AppDelegate.m
Original file line number Diff line number Diff line change
@@ -1,111 +1,44 @@
//
// AppDelegate.m
// iosAppObjC
//
// Created by Andrey Kornich on 2020-11-04.
//

#import "AppDelegate.h"
#import "RollbarDemoSettings.h"

@import RollbarNotifier;
@import RollbarKSCrash;
@import RollbarPLCrashReporter;

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.

[self initRollbar];

NSData *data = [[NSData alloc] init];
NSError *error;
NSJSONReadingOptions serializationOptions = (NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves);
NSDictionary *payload = [NSJSONSerialization JSONObjectWithData:data
options:serializationOptions
error:&error];
if (!payload && error) {
[Rollbar log:RollbarLevel_Error
error:error
data:nil
context:nil
];
}
RollbarMutableConfig *config = [
// Rollbar post_client_item access token
RollbarConfig mutableConfigWithAccessToken:@"YOUR-ROLLBAR-ACCESSTOKEN"
environment:@"staging"];

@try {
[self callTroublemaker];
} @catch (NSException *exception) {
[Rollbar errorException:exception data:nil context:@"from @try-@catch"];
} @finally {
[Rollbar infoMessage:@"Post-trouble notification!" data:nil context:@"from @try-@finally"];
}

config.loggingOptions.codeVersion = @"main";
config.developerOptions.suppressSdkInfoLogging = NO;
config.telemetry.memoryStatsAutocollectionInterval = 0.5;
config.telemetry.enabled = YES;

// now, cause a crash:
// [self callTroublemaker];
//@throw NSInternalInconsistencyException;

// [self performSelector:@selector(die_die)];
// [self performSelector:NSSelectorFromString(@"crashme:") withObject:nil afterDelay:10];
//id<RollbarCrashCollector> crashCollector = [[RollbarKSCrashCollector alloc] init];
id<RollbarCrashCollector> crashCollector = [[RollbarPLCrashCollector alloc] init];

[Rollbar initWithConfiguration:config
crashCollector:crashCollector];

[Rollbar infoMessage:@"Rollbar is up and running! Enjoy your remote error and log monitoring..."];

return YES;
}


#pragma mark - UISceneSession lifecycle


- (UISceneConfiguration *) application:(UIApplication *)application
configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession
options:(UISceneConnectionOptions *)options {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}


- (void) application:(UIApplication *)application
didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration"
sessionRole:connectingSceneSession.role];
}

- (void)initRollbar {

// configure Rollbar:
RollbarConfig *config = [RollbarConfig new];

config.destination.accessToken = ROLLBAR_DEMO_PAYLOADS_ACCESS_TOKEN;
config.destination.environment = ROLLBAR_DEMO_ENVIRONMENT;
config.developerOptions.suppressSdkInfoLogging = YES;
config.telemetry.memoryStatsAutocollectionInterval = 0.5;
config.telemetry.enabled = YES;

// init Rollbar shared instance:
//id<RollbarCrashCollector> crashCollector = [[RollbarKSCrashCollector alloc] init];
id<RollbarCrashCollector> crashCollector = [[RollbarPLCrashCollector alloc] init];

[Rollbar initWithConfiguration:config crashCollector:crashCollector];

[Rollbar infoMessage:@"Rollbar is up and running! Enjoy your remote error and log monitoring..."];
}

- (void)callTroublemaker {
NSArray *items = @[@"one", @"two", @"three"];
NSLog(@"Here is the trouble-item: %@", items[10]);
}

//- (void)demonstrateDeployApiUsage {
//
// RollbarDeploysDemoClient * rollbarDeploysIntro = [[RollbarDeploysDemoClient new] init];
// [rollbarDeploysIntro demoDeploymentRegistration];
// [rollbarDeploysIntro demoGetDeploymentDetailsById];
// [rollbarDeploysIntro demoGetDeploymentsPage];
//}


@end
Loading

0 comments on commit b06f373

Please sign in to comment.