Skip to content

Commit b06f373

Browse files
authored
Merge pull request #241 from rollbar/release
Release 2.4.0
2 parents dd8265f + 4fcda62 commit b06f373

File tree

123 files changed

+8789
-2745
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+8789
-2745
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,5 @@ build_wrapper_output_directory/
3333
_ General AUL Entries Bulk Capture.txt
3434

3535
_ AUL Entries Capture Samples.txt
36+
37+
.build/

CHANGELOG.md

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,33 @@
22

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

5-
## Release Notes Tagging Conventions
6-
7-
1. Every entry within the PackageReleaseNotes element is expected to be started with
8-
at least one of the tags listed:
9-
10-
feat: A new feature
11-
fix: A bug fix
12-
docs: Documentation only changes
13-
style: Changes that do not affect the meaning of the code
14-
refactor: A code change that neither a bug fix nor a new feature
15-
perf: A code change that improves performance
16-
test: Adding or modifying unit test code
17-
chore: Changes to the build process or auxiliary tools and libraries such as documentation generation, etc.
18-
19-
2. Every entry within the PackageReleaseNotes element is expected to be tagged with
20-
EITHER
21-
"resolve #GITHUB_ISSUE_NUMBER:" - meaning completely addresses the GitHub issue
22-
OR
23-
"ref #GITHUB_ISSUE_NUMBER:" - meaning relevant to the GitHub issue
24-
depending on what is more appropriate in each case.
25-
265
## Release Notes
276

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

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

3228
### 2.3.3
3329

34-
- fix: resolve #190 - Fix Cocoapods build warnings in RollbarNotifier
35-
- fix: resolve #191 - Fix Cocoapods build warnings in RollbarCommon
30+
- fix: resolve #190 - Fix Cocoapods build warnings in RollbarNotifier
31+
- fix: resolve #191 - Fix Cocoapods build warnings in RollbarCommon
3632
- fix: resolve #192 - Fix SonarCloud detected bugs
3733

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

7773
### 2.1.0
7874

79-
- feat: resolve #141 - Apply developer options of the persisted payload when sending the payload
75+
- feat: resolve #141 - Apply developer options of the persisted payload when sending the payload
8076
- feat: resolve #133 - Implement RollbarCocoaLumberjack module
8177
- test: resolve #134 - Implement unit tests for RollbarCocoaLumberjack
8278
- fix: resolve #136 - RollbarPLCrashReporter.init() no longer available

Demos/RollbarDemoSettings.h

Lines changed: 0 additions & 16 deletions
This file was deleted.

Demos/RollbarDemoSettings.swift

Lines changed: 0 additions & 8 deletions
This file was deleted.

Demos/iosAppObjC/iosAppObjC.xcodeproj/project.pbxproj

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
objects = {
88

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

2424
/* Begin PBXFileReference section */
25+
3BDB8258292D67900093AC9D /* SceneDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
26+
3BDB8259292D67900093AC9D /* SceneDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
27+
3BDB825B292E34990093AC9D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
2528
55684F6B2553B4C400F82F34 /* iosAppObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosAppObjC.app; sourceTree = BUILT_PRODUCTS_DIR; };
2629
55684F6E2553B4C400F82F34 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
2730
55684F6F2553B4C400F82F34 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
28-
55684F712553B4C400F82F34 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
29-
55684F722553B4C400F82F34 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
3031
55684F742553B4C400F82F34 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
3132
55684F752553B4C400F82F34 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
3233
55684F782553B4C400F82F34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
3334
55684F7A2553B4C700F82F34 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
3435
55684F7D2553B4C700F82F34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
35-
55684F7F2553B4C700F82F34 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
3636
55684F802553B4C700F82F34 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
3737
55684F9B2553BD1B00F82F34 /* iosAppObjC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = iosAppObjC.entitlements; sourceTree = "<group>"; };
3838
55684F9C2553BD1C00F82F34 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; };
39-
55C1B42127C5C95000017B22 /* RollbarDemoSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RollbarDemoSettings.h; path = ../../RollbarDemoSettings.h; sourceTree = "<group>"; };
4039
/* End PBXFileReference section */
4140

4241
/* Begin PBXFrameworksBuildPhase section */
@@ -75,18 +74,17 @@
7574
55684F6D2553B4C400F82F34 /* iosAppObjC */ = {
7675
isa = PBXGroup;
7776
children = (
78-
55C1B42127C5C95000017B22 /* RollbarDemoSettings.h */,
77+
3BDB825B292E34990093AC9D /* Info.plist */,
7978
55684F9B2553BD1B00F82F34 /* iosAppObjC.entitlements */,
8079
55684F6E2553B4C400F82F34 /* AppDelegate.h */,
8180
55684F6F2553B4C400F82F34 /* AppDelegate.m */,
82-
55684F712553B4C400F82F34 /* SceneDelegate.h */,
83-
55684F722553B4C400F82F34 /* SceneDelegate.m */,
81+
3BDB8259292D67900093AC9D /* SceneDelegate.h */,
82+
3BDB8258292D67900093AC9D /* SceneDelegate.m */,
8483
55684F742553B4C400F82F34 /* ViewController.h */,
8584
55684F752553B4C400F82F34 /* ViewController.m */,
8685
55684F772553B4C400F82F34 /* Main.storyboard */,
8786
55684F7A2553B4C700F82F34 /* Assets.xcassets */,
8887
55684F7C2553B4C700F82F34 /* LaunchScreen.storyboard */,
89-
55684F7F2553B4C700F82F34 /* Info.plist */,
9088
55684F802553B4C700F82F34 /* main.m */,
9189
);
9290
path = iosAppObjC;
@@ -178,7 +176,7 @@
178176
55684F762553B4C400F82F34 /* ViewController.m in Sources */,
179177
55684F702553B4C400F82F34 /* AppDelegate.m in Sources */,
180178
55684F812553B4C700F82F34 /* main.m in Sources */,
181-
55684F732553B4C400F82F34 /* SceneDelegate.m in Sources */,
179+
3BDB825A292D67900093AC9D /* SceneDelegate.m in Sources */,
182180
);
183181
runOnlyForDeploymentPostprocessing = 0;
184182
};
@@ -238,7 +236,7 @@
238236
CLANG_WARN_UNREACHABLE_CODE = YES;
239237
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
240238
COPY_PHASE_STRIP = NO;
241-
DEBUG_INFORMATION_FORMAT = dwarf;
239+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
242240
ENABLE_STRICT_OBJC_MSGSEND = YES;
243241
ENABLE_TESTABILITY = YES;
244242
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -255,10 +253,12 @@
255253
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
256254
GCC_WARN_UNUSED_FUNCTION = YES;
257255
GCC_WARN_UNUSED_VARIABLE = YES;
258-
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
256+
GENERATE_INFOPLIST_FILE = YES;
257+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
259258
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
260259
MTL_FAST_MATH = YES;
261260
ONLY_ACTIVE_ARCH = YES;
261+
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
262262
SDKROOT = iphoneos;
263263
};
264264
name = Debug;
@@ -308,9 +308,11 @@
308308
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
309309
GCC_WARN_UNUSED_FUNCTION = YES;
310310
GCC_WARN_UNUSED_VARIABLE = YES;
311-
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
311+
GENERATE_INFOPLIST_FILE = YES;
312+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
312313
MTL_ENABLE_DEBUG_INFO = NO;
313314
MTL_FAST_MATH = YES;
315+
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
314316
SDKROOT = iphoneos;
315317
VALIDATE_PRODUCT = YES;
316318
};
@@ -324,12 +326,20 @@
324326
CODE_SIGN_ENTITLEMENTS = iosAppObjC/iosAppObjC.entitlements;
325327
CODE_SIGN_IDENTITY = "Apple Development";
326328
CODE_SIGN_STYLE = Automatic;
327-
DEVELOPMENT_TEAM = LDX6L68VZJ;
329+
CURRENT_PROJECT_VERSION = 3;
330+
DEVELOPMENT_TEAM = 6B5NER795L;
328331
INFOPLIST_FILE = iosAppObjC/Info.plist;
332+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
333+
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
334+
INFOPLIST_KEY_UIMainStoryboardFile = Main;
335+
INFOPLIST_KEY_UIRequiredDeviceCapabilities = armv7;
336+
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
337+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
329338
LD_RUNPATH_SEARCH_PATHS = (
330339
"$(inherited)",
331340
"@executable_path/Frameworks",
332341
);
342+
MARKETING_VERSION = 1.0;
333343
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
334344
PRODUCT_NAME = "$(TARGET_NAME)";
335345
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -345,12 +355,20 @@
345355
CODE_SIGN_ENTITLEMENTS = iosAppObjC/iosAppObjC.entitlements;
346356
CODE_SIGN_IDENTITY = "Apple Development";
347357
CODE_SIGN_STYLE = Automatic;
348-
DEVELOPMENT_TEAM = LDX6L68VZJ;
358+
CURRENT_PROJECT_VERSION = 3;
359+
DEVELOPMENT_TEAM = 6B5NER795L;
349360
INFOPLIST_FILE = iosAppObjC/Info.plist;
361+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
362+
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
363+
INFOPLIST_KEY_UIMainStoryboardFile = Main;
364+
INFOPLIST_KEY_UIRequiredDeviceCapabilities = armv7;
365+
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
366+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
350367
LD_RUNPATH_SEARCH_PATHS = (
351368
"$(inherited)",
352369
"@executable_path/Frameworks",
353370
);
371+
MARKETING_VERSION = 1.0;
354372
PRODUCT_BUNDLE_IDENTIFIER = com.rollbar.iosAppObjC;
355373
PRODUCT_NAME = "$(TARGET_NAME)";
356374
PROVISIONING_PROFILE_SPECIFIER = "";
Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
1-
//
2-
// AppDelegate.h
3-
// iosAppObjC
4-
//
5-
// Created by Andrey Kornich on 2020-11-04.
6-
//
7-
8-
#import <UIKit/UIKit.h>
1+
@import UIKit;
92

103
@interface AppDelegate : UIResponder <UIApplicationDelegate>
114

12-
135
@end
146

Lines changed: 17 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,44 @@
1-
//
2-
// AppDelegate.m
3-
// iosAppObjC
4-
//
5-
// Created by Andrey Kornich on 2020-11-04.
6-
//
7-
81
#import "AppDelegate.h"
9-
#import "RollbarDemoSettings.h"
102

113
@import RollbarNotifier;
124
@import RollbarKSCrash;
135
@import RollbarPLCrashReporter;
146

157
@implementation AppDelegate
168

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

21-
[self initRollbar];
22-
23-
NSData *data = [[NSData alloc] init];
24-
NSError *error;
25-
NSJSONReadingOptions serializationOptions = (NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves);
26-
NSDictionary *payload = [NSJSONSerialization JSONObjectWithData:data
27-
options:serializationOptions
28-
error:&error];
29-
if (!payload && error) {
30-
[Rollbar log:RollbarLevel_Error
31-
error:error
32-
data:nil
33-
context:nil
34-
];
35-
}
12+
RollbarMutableConfig *config = [
13+
// Rollbar post_client_item access token
14+
RollbarConfig mutableConfigWithAccessToken:@"YOUR-ROLLBAR-ACCESSTOKEN"
15+
environment:@"staging"];
3616

37-
@try {
38-
[self callTroublemaker];
39-
} @catch (NSException *exception) {
40-
[Rollbar errorException:exception data:nil context:@"from @try-@catch"];
41-
} @finally {
42-
[Rollbar infoMessage:@"Post-trouble notification!" data:nil context:@"from @try-@finally"];
43-
}
44-
17+
config.loggingOptions.codeVersion = @"main";
18+
config.developerOptions.suppressSdkInfoLogging = NO;
19+
config.telemetry.memoryStatsAutocollectionInterval = 0.5;
20+
config.telemetry.enabled = YES;
4521

46-
// now, cause a crash:
47-
// [self callTroublemaker];
48-
49-
//@throw NSInternalInconsistencyException;
50-
51-
// [self performSelector:@selector(die_die)];
52-
// [self performSelector:NSSelectorFromString(@"crashme:") withObject:nil afterDelay:10];
22+
//id<RollbarCrashCollector> crashCollector = [[RollbarKSCrashCollector alloc] init];
23+
id<RollbarCrashCollector> crashCollector = [[RollbarPLCrashCollector alloc] init];
24+
25+
[Rollbar initWithConfiguration:config
26+
crashCollector:crashCollector];
27+
28+
[Rollbar infoMessage:@"Rollbar is up and running! Enjoy your remote error and log monitoring..."];
5329

5430
return YES;
5531
}
5632

57-
5833
#pragma mark - UISceneSession lifecycle
5934

60-
6135
- (UISceneConfiguration *) application:(UIApplication *)application
6236
configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession
6337
options:(UISceneConnectionOptions *)options {
6438
// Called when a new scene session is being created.
6539
// Use this method to select a configuration to create the new scene with.
66-
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
67-
}
68-
69-
70-
- (void) application:(UIApplication *)application
71-
didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
72-
// Called when the user discards a scene session.
73-
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
74-
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
40+
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration"
41+
sessionRole:connectingSceneSession.role];
7542
}
7643

77-
- (void)initRollbar {
78-
79-
// configure Rollbar:
80-
RollbarConfig *config = [RollbarConfig new];
81-
82-
config.destination.accessToken = ROLLBAR_DEMO_PAYLOADS_ACCESS_TOKEN;
83-
config.destination.environment = ROLLBAR_DEMO_ENVIRONMENT;
84-
config.developerOptions.suppressSdkInfoLogging = YES;
85-
config.telemetry.memoryStatsAutocollectionInterval = 0.5;
86-
config.telemetry.enabled = YES;
87-
88-
// init Rollbar shared instance:
89-
//id<RollbarCrashCollector> crashCollector = [[RollbarKSCrashCollector alloc] init];
90-
id<RollbarCrashCollector> crashCollector = [[RollbarPLCrashCollector alloc] init];
91-
92-
[Rollbar initWithConfiguration:config crashCollector:crashCollector];
93-
94-
[Rollbar infoMessage:@"Rollbar is up and running! Enjoy your remote error and log monitoring..."];
95-
}
96-
97-
- (void)callTroublemaker {
98-
NSArray *items = @[@"one", @"two", @"three"];
99-
NSLog(@"Here is the trouble-item: %@", items[10]);
100-
}
101-
102-
//- (void)demonstrateDeployApiUsage {
103-
//
104-
// RollbarDeploysDemoClient * rollbarDeploysIntro = [[RollbarDeploysDemoClient new] init];
105-
// [rollbarDeploysIntro demoDeploymentRegistration];
106-
// [rollbarDeploysIntro demoGetDeploymentDetailsById];
107-
// [rollbarDeploysIntro demoGetDeploymentsPage];
108-
//}
109-
110-
11144
@end

0 commit comments

Comments
 (0)