Skip to content

Commit 67a43a9

Browse files
Merged event dispatcher changes.
2 parents a58d381 + 8c571c9 commit 67a43a9

File tree

22 files changed

+1394
-263
lines changed

22 files changed

+1394
-263
lines changed

OptimizelySDKCore/OptimizelySDKCore/OPTLYErrorHandlerMessages.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,12 @@ typedef NS_ENUM(NSUInteger, OPTLYErrorTypes) {
5353
OPTLYErrorTypesConfigInvalid,
5454
OPTLYErrorTypesLoggerInvalid,
5555
OPTLYErrorTypesErrorHandlerInvalid,
56-
OPTLYErrorTypesEventDispatchInvalid,
5756
OPTLYErrorTypesBuilderInvalid,
5857
OPTLYErrorTypesDatabase,
5958
OPTLYErrorTypesDataStore,
59+
OPTLYErrorTypesEventDispatch,
60+
OPTLYErrorTypesEventTrack,
61+
OPTLYErrorTypesUserActivate,
6062
};
6163

6264
@interface OPTLYErrorHandlerMessages : NSObject

OptimizelySDKCore/OptimizelySDKCore/OPTLYEventDispatcher.h

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,21 @@
2020
@protocol OPTLYEventDispatcher <NSObject>
2121

2222
/**
23-
* Dispatch an event to a specific URL.
23+
* Dispatch an impression event.
2424
* @param params Dictionary of the event parameter values
25-
* @param url The URL to send the event to.
25+
* @param callback The completion handler
2626
*/
27-
- (void)dispatchEvent:(nonnull NSDictionary *)params
28-
toURL:(nonnull NSURL *)url
29-
completionHandler:(nullable void(^)(NSURLResponse * _Nullable response, NSError * _Nullable error))completion;
27+
28+
- (void)dispatchImpressionEvent:(nonnull NSDictionary *)params
29+
callback:(nullable void(^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))callback;
30+
31+
/**
32+
* Dispatch a conversion event.
33+
* @param params Dictionary of the event parameter values
34+
* @param callback The completion handler
35+
*/
36+
- (void)dispatchConversionEvent:(nonnull NSDictionary *)params
37+
callback:(nullable void(^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))callback;
3038

3139
@end
3240

@@ -38,8 +46,17 @@
3846
+ (BOOL)conformsToOPTLYEventDispatcherProtocol:(nonnull Class)instanceClass;
3947
@end
4048

49+
/**
50+
* OPTLYEventDispatcherBasic is a very simple implementation of the OPTLYEventDispatcher protocol.
51+
* It dispatches events without any failure mechanisms (e.g., events are not queued up for a loater
52+
* retry.
53+
*/
4154
@interface OPTLYEventDispatcherBasic : NSObject <OPTLYEventDispatcher>
4255
@end
4356

57+
/**
58+
* OPTLYEventDispatcherNoOp comforms to the OPTLYEventDispatcher protocol,
59+
* but all methods performa a no op.
60+
*/
4461
@interface OPTLYEventDispatcherNoOp : NSObject<OPTLYEventDispatcher>
4562
@end

OptimizelySDKCore/OptimizelySDKCore/OPTLYEventDispatcher.m

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
#import "OPTLYEventDispatcher.h"
2020
#import "OPTLYErrorHandler.h"
2121

22+
static NSString * const kHTTPRequestMethodPost = @"POST";
23+
static NSString * const kHTTPHeaderFieldContentType = @"Content-Type";
24+
static NSString * const kHTTPHeaderFieldValueApplicationJSON = @"application/json";
25+
2226
@implementation OPTLYEventDispatcherUtility
2327

2428
+ (BOOL)conformsToOPTLYEventDispatcherProtocol:(Class)instanceClass
@@ -27,9 +31,10 @@ + (BOOL)conformsToOPTLYEventDispatcherProtocol:(Class)instanceClass
2731
BOOL validProtocolDeclaration = [instanceClass conformsToProtocol:@protocol(OPTLYEventDispatcher)];
2832

2933
// runtime checks
30-
BOOL implementsDispatchEventMethod = [instanceClass instancesRespondToSelector:@selector(dispatchEvent:toURL:completionHandler:)];
34+
BOOL implementsDispatchImpressionEventMethod = [instanceClass instancesRespondToSelector:@selector(dispatchImpressionEvent:callback:)];
35+
BOOL implementsDispatchConversionEventMethod = [instanceClass instancesRespondToSelector:@selector(dispatchConversionEvent:callback:)];
3136

32-
return validProtocolDeclaration && implementsDispatchEventMethod;
37+
return validProtocolDeclaration && implementsDispatchImpressionEventMethod && implementsDispatchConversionEventMethod;
3338
}
3439

3540
@end
@@ -72,10 +77,13 @@ - (void)dispatchEvent:(NSDictionary *)params
7277

7378
@implementation OPTLYEventDispatcherNoOp
7479

75-
- (void)dispatchEvent:(NSDictionary *)params
76-
toURL:(NSURL *)url
77-
completionHandler:(void(^)(NSURLResponse *response, NSError *error))completion
78-
{
80+
- (void)dispatchImpressionEvent:(nonnull NSDictionary *)params
81+
callback:(nullable void(^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))callback {
82+
return;
83+
}
84+
85+
- (void)dispatchConversionEvent:(nonnull NSDictionary *)params
86+
callback:(nullable void(^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))callback {
7987
return;
8088
}
8189

OptimizelySDKCore/OptimizelySDKCore/OPTLYLogger.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ - (void)logMessage:(NSString *)message withLevel:(OptimizelyLogLevel)level {
8686
break;
8787
}
8888
NSLog(@"[OPTIMIZELY SDK][%@]:%@", levelTag, message);
89+
8990
return;
9091
}
9192
}

OptimizelySDKCore/OptimizelySDKCore/OPTLYLoggerMessages.h

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,27 +39,19 @@ extern NSString *const OPTLYDatafileManagerInitializedWithoutProjectIdMessage;
3939

4040
// ---- info ----
4141
extern NSString *const OPTLYLoggerMessagesAudienceTargetingFail;
42-
extern NSString *const OPTLYLoggerMessagesActivationSuccess;
43-
extern NSString *const OPTLYLoggerMessagesActivationFailure;
44-
extern NSString *const OPTLYLoggerMessagesConversionSuccess;
4542
extern NSString *const OPTLYLoggerMessagesNoExperimentsForGoal;
4643
extern NSString *const OPTLYLoggerMessagesVariationUserAssigned;
4744
extern NSString *const OPTLYLoggerMessagesForcedVariationUser;
48-
extern NSString *const OPTLYLoggerMessagesConversionFailAudienceTargeting;
45+
extern NSString *const OPTLYLoggerMessagesFailAudienceTargeting;
4946
extern NSString *const OPTLYLoggerMessagesExperimentNotRunning;
50-
extern NSString *const OPTLYLoggerMessagesUserNotTracked;
5147
extern NSString *const OPTLYLoggerMessagesUserMutuallyExcluded;
52-
extern NSString *const OPTLYLoggerMessagesNotTrackedUnknownEvent;
53-
extern NSString *const OPTLYLoggerMessagesNotTrackedNoParams;
54-
extern NSString *const OPTLYLoggerMessagesNotTrackedDispatchFailed;
5548
extern NSString *const OPTLYLoggerMessagesExperimentIdUnknown;
5649
extern NSString *const OPTLYLoggerMessagesEventIdUnknown;
5750
extern NSString *const OPTLYLoggerMessagesVariationIdInvalid;
5851
extern NSString *const OPTLYLoggerMessagesUserIdInvalid;
5952
extern NSString *const OPTLYLoggerMessagesExperimentKeyInvalid;
6053
extern NSString *const OPTLYLoggerMessagesVariationIdInvalid;
6154
extern NSString *const OPTLYLoggerMessagesBucketerInvalid;
62-
extern NSString *const OPTLYLoggerMessagesNoImpressionNoParams;
6355
extern NSString *const OPTLYLoggerMessagesExperimentNotPartOfEvent;
6456
extern NSString *const OPTLYLoggerMessagesAttributeValueInvalidFormat;
6557
extern NSString *const OPTLYLoggerMessagesExperimentIdUnknownForExperimentKey;
@@ -74,11 +66,60 @@ extern NSString *const OPTLYLoggerMessagesVariableUnknownForVariableKey;
7466
extern NSString *const OPTLYLoggerMessagesNoVariationFoundForExperimentWithLiveVariable;
7567

7668
// ---- debug ----
77-
extern NSString *const OPTLYLoggerMessagesImpressionDispatching;
78-
extern NSString *const OPTLYLoggerMessagesConversionDispatching;
79-
extern NSString *const OPTLYLoggerMessagesDispatchEventNoOp;
8069
extern NSString *const OPTLYLoggerMessagesBucketAssigned;
8170

71+
// ---- Event Dispatcher ----
72+
// info
73+
extern NSString *const OPTLYLoggerMessagesConversionSuccess;
74+
extern NSString *const OPTLYLoggerMessagesActivationSuccess;
75+
// warning
76+
extern NSString *const OPTLYLoggerMessagesEventDispatcherInvalidInterval;
77+
extern NSString *const OPTLYLoggerMessagesEventDispatcherInvalidTimeout;
78+
// debug
79+
extern NSString *const OPTLYLoggerMessagesDispatchingImpressionEvent;
80+
extern NSString *const OPTLYLoggerMessagesDispatchingConversionEvent;
81+
extern NSString *const OPTLYLoggerMessagesEventDispatcherProperties;
82+
extern NSString *const OPTLYLoggerMessagesEventDispatcherNetworkTimerEnabled;
83+
extern NSString *const OPTLYLoggerMessagesEventDispatcherNetworkTimerDisabled;
84+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsNoEvents;
85+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsBackoffSkipRetry;
86+
extern NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchFlushSavedEventNoEvents;
87+
extern NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchSuccess;
88+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsBackoffMaxRetries;
89+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventSuccess;
90+
extern NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchFailed;
91+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventFailure;
92+
extern NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventRetrievalFailure;
93+
// error
94+
extern NSString *const OPTLYLoggerMessagesEventNotTracked;
95+
extern NSString *const OPTLYLoggerMessagesActivationFailure;
96+
97+
// ---- Data Store ----
98+
// warning
99+
extern NSString *const OPTLYLoggerMessagesDataStoreEventsRemoveAllWarning;
100+
101+
// File Manager
102+
// debug
103+
extern NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveAllFilesError;
104+
extern NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveFilesForDataTypeError;
105+
extern NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveFileForDataTypeError;
106+
extern NSString *const OPTLYLoggerMessagesDataStoreFileManagerGetFile;
107+
extern NSString *const OPTLYLoggerMessagesDataStoreFileManagerSaveFile;
108+
109+
// Database
110+
// debug
111+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseCreateTableError;
112+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseSaveError;
113+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetError;
114+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNumberEvents;
115+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNoEvents;
116+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseRemoveError;
117+
// warning
118+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseSaveTVOSWarning;
119+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetTVOSWarning;
120+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNumberEventsTVOSWarning;
121+
extern NSString *const OPTLYLoggerMessagesDataStoreDatabaseRemoveTVOSWarning;
122+
82123
@interface OPTLYLoggerMessages : NSObject
83124

84125
@end

OptimizelySDKCore/OptimizelySDKCore/OPTLYLoggerMessages.m

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,12 @@
3535

3636
// ---- info ----
3737
NSString *const OPTLYLoggerMessagesAudienceTargetingFail = @"User %@ does not meet conditions to be in experiment %@.";
38-
NSString *const OPTLYLoggerMessagesActivationSuccess = @"Activating user %@ in experiment %@.";
39-
NSString *const OPTLYLoggerMessagesActivationFailure = @"Not activating user %@ for experiment %@.";
40-
NSString *const OPTLYLoggerMessagesConversionSuccess = @"Tracking event %@ for user %@.";
4138
NSString *const OPTLYLoggerMessagesNoExperimentsForGoal = @"There are no valid experiments for event %@ to track.";
4239
NSString *const OPTLYLoggerMessagesVariationUserAssigned = @"User %@ is in variation %@ of experiment %@.";
4340
NSString *const OPTLYLoggerMessagesForcedVariationUser = @"User %@ is forced in variation %@.";
44-
NSString *const OPTLYLoggerMessagesConversionFailAudienceTargeting = @"User %@ does not meet conditions to be in experiment %@.";
41+
NSString *const OPTLYLoggerMessagesFailAudienceTargeting = @"User %@ does not meet conditions to be in experiment %@.";
4542
NSString *const OPTLYLoggerMessagesExperimentNotRunning = @"Experiment %@ is not running.";
46-
NSString *const OPTLYLoggerMessagesUserNotTracked = @"Not tracking user if experiment isn’t running or user isn’t in experiment audience";
47-
4843
NSString *const OPTLYLoggerMessagesUserMutuallyExcluded = @"User %ld is mutually excluded"; // user id
49-
NSString *const OPTLYLoggerMessagesNotTrackedUnknownEvent = @"Not tracking event %@ for user %@. Event is not in datafile."; // event key, userId
50-
NSString *const OPTLYLoggerMessagesNotTrackedNoParams = @"Not tracking event %@ for user %@. Params not generated."; // event key, userId
51-
NSString *const OPTLYLoggerMessagesNotTrackedDispatchFailed = @"Not tracking event %@ for user %@. Event dispatch failed."; // event key, userId
5244
NSString *const OPTLYLoggerMessagesExperimentIdUnknown = @"Experiment id for %@ is not in the datafile."; // experiment key
5345
NSString *const OPTLYLoggerMessagesEventIdUnknown = @"Event id %@ is not in the datafile."; //event key
5446
NSString *const OPTLYLoggerMessagesNoVariationFoundForExperimentWithLiveVariable = @"Variation not found for user ID: %@ with experiment key: %@ containing live variable: %@.";
@@ -58,7 +50,6 @@
5850
NSString *const OPTLYLoggerMessagesExperimentKeyInvalid = @"Experiment key is not valid.";
5951
NSString *const OPTLYLoggerMessagesVariationIdInvalid = @"Variation id is not valid.";
6052
NSString *const OPTLYLoggerMessagesBucketerInvalid = @"Bucketer is not valid.";
61-
NSString *const OPTLYLoggerMessagesNoImpressionNoParams = @"No impression sent for experiment %@, user %@. Params not generated."; // experiment key, userId
6253
NSString *const OPTLYLoggerMessagesExperimentNotPartOfEvent = @"Experiment %@ is not associated with event %@.";
6354
NSString *const OPTLYLoggerMessagesAttributeValueInvalidFormat = @"Provided value for attribute %@ is in an invalid format.";
6455
// project config getters
@@ -70,17 +61,66 @@
7061
NSString *const OPTLYLoggerMessagesAudienceUnknownForAudienceId = @"Audience not found for audience id: %@."; // audience id
7162
NSString *const OPTLYLoggerMessagesGroupUnknownForGroupId = @"Group not found for group id: %@."; // group id
7263
NSString *const OPTLYLoggerMessagesVariableUnknownForVariableKey = @"Live variable not found for variable key: %@."; // live variable key
73-
7464
NSString *const OPTLYLoggerMessagesEventDispatcherInterval = @"Event dispatcher interval set: %ld";
7565

7666
// ---- Debug ----
77-
// Event Dispatcher
78-
NSString *const OPTLYLoggerMessagesImpressionDispatching = @"Dispatching impression event to URL %@ with params %@.";
79-
NSString *const OPTLYLoggerMessagesConversionDispatching = @"Dispatching conversion event to URL %@ with params %@.";
80-
NSString *const OPTLYLoggerMessagesDispatchEventNoOp = @"Called dispatchEvent with URL: %@ and params: %@";
81-
8267
NSString *const OPTLYLoggerMessagesBucketAssigned = @"Assigned bucket %@ to user %@.";
8368

69+
// ---- Event Tracking ----
70+
// info
71+
NSString *const OPTLYLoggerMessagesConversionSuccess = @"[EVENT DISPATCH] Tracking event %@ for user %@.";
72+
NSString *const OPTLYLoggerMessagesActivationSuccess = @"[EVENT DISPATCH] Activating user %@ in experiment %@.";
73+
// warning
74+
NSString *const OPTLYLoggerMessagesEventDispatcherInvalidInterval = @"[EVENT DISPATCH] Invalid event handler dispatch interval set: %ld.";
75+
NSString *const OPTLYLoggerMessagesEventDispatcherInvalidTimeout = @"[EVENT DISPATCH] Invalid event handler dispatch timeout set: %ld.";
76+
// debug
77+
NSString *const OPTLYLoggerMessagesDispatchingImpressionEvent = @"[EVENT DISPATCH] Dispatching impression event with params %@.";
78+
NSString *const OPTLYLoggerMessagesDispatchingConversionEvent = @"[EVENT DISPATCH] Dispatching conversion event with params %@.";
79+
NSString *const OPTLYLoggerMessagesEventDispatcherProperties = @"[EVENT DISPATCH] Properties set: %ld [interval], %ld [timeout], %ld [max retries].";
80+
NSString *const OPTLYLoggerMessagesEventDispatcherNetworkTimerEnabled = @"[EVENT DISPATCH] Network timer enabled with properties: %ld [interval], %ld [timeout], %ld [max retries].";
81+
NSString *const OPTLYLoggerMessagesEventDispatcherNetworkTimerDisabled = @"[EVENT DISPATCH] Network timer disabled.";
82+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsNoEvents = @"[EVENT DISPATCH] No events to send for flushEvents call.";
83+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsBackoffSkipRetry = @"[EVENT DISPATCH] At dispatch call %ld. Skipping dispatch retry.";
84+
NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchFlushSavedEventNoEvents = @"No %@ events to send for flush saved events call.";
85+
NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchSuccess = @"[EVENT DISPATCH] %@ event sent with parameters: %@.";
86+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushEventsBackoffMaxRetries = @"[EVENT DISPATCH] Attempt to dispatch saved events failed. Retries have exceeded max allowed time: %ld.";
87+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventSuccess = @"[EVENT DISPATCH] %@ event successfully sent with parameters: %@. Removing event from storage.";
88+
NSString *const OPTLYLoggerMessagesEventDispatcherEventDispatchFailed = @"[EVENT DISPATCH] %@ event not sent. Saving event. Parameters: %@. Error received: %@.";
89+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventFailure = @"[EVENT DISPATCH] %@ event not sent and will not be removed from the queue. Parameters: %@.";
90+
NSString *const OPTLYLoggerMessagesEventDispatcherFlushSavedEventRetrievalFailure = @"[EVENT DISPATCH] Error retrieving saved event data: %@.";
91+
// error
92+
NSString *const OPTLYLoggerMessagesEventNotTracked = @"[EVENT DISPATCH] Not tracking event %@ for experiment %@."; // event key, userId
93+
NSString *const OPTLYLoggerMessagesActivationFailure = @"[EVENT DISPATCH] Not activating user %@ for experiment %@.";
94+
95+
96+
// ---- Data Store ----
97+
// warning
98+
NSString *const OPTLYLoggerMessagesDataStoreEventsRemoveAllWarning = @"[DATA STORE] Warning: Removing all events from data store! These events will not be tracked by Optimizely.";
99+
100+
// File Manager
101+
// debug
102+
NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveAllFilesError = @"[FILE MANAGER] Remove all files error: %@.";
103+
NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveFilesForDataTypeError = @"[FILE MANAGER] Error removing files for data type %ld. Error: %@.";
104+
NSString *const OPTLYLoggerMessagesDataStoreFileManagerRemoveFileForDataTypeError = @"[FILE MANAGER] Error removing file for data type %ld. File name: %@. Error: %@.";
105+
NSString *const OPTLYLoggerMessagesDataStoreFileManagerGetFile = @"[FILE MANAGER] Error gettomg file for data type %ld. File name: %@. Error: %@.";
106+
NSString *const OPTLYLoggerMessagesDataStoreFileManagerSaveFile = @"[FILE MANAGER] Error saving file for data type %ld. File name: %@. Error: %@.";
107+
108+
// Database
109+
// debug
110+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseCreateTableError = @"[DATABASE] Error creating table %@. Error: %@.";
111+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseSaveError = @"[DATABASE] Error saving database. Data: %@, eventType: %ld, cachedData: %u, error: %@.";
112+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetError = @"[DATABASE] Error getting events. Number of events requested: %ld, eventType: %ld, cachedData: %u, error: %@.";
113+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNumberEvents = @"[DATABASE] Error getting number of events. cachedData: %u, eventType: %ld, error: %@.";
114+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseRemoveError = @"[DATABASE] Error removing data. Number of events to remove: %ld, eventType: %ld, cachedData: %u, error: %@.";
115+
// warning
116+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNoEvents = @"[DATABASE] Get event returned no event. eventType: %ld, cachedData: %u.";
117+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseSaveTVOSWarning = @"[DATABASE] tvOS can only save to cached data. Data: %@, eventType: %ld.";
118+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetTVOSWarning = @"[DATABASE] tvOS can only get data from cache. Number of events: %ld, eventType: %ld.";
119+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseGetNumberEventsTVOSWarning = @"[DATABASE] tvOS can only get number of events from cache. eventType: %ld.";
120+
NSString *const OPTLYLoggerMessagesDataStoreDatabaseRemoveTVOSWarning = @"[DATABASE] tvOS can only remove data from cache> Number of events: %ld, eventType: %ld.";
121+
122+
123+
84124
@implementation OPTLYLoggerMessages
85125

86126
@end

OptimizelySDKCore/OptimizelySDKCore/OPTLYProjectConfig.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
* Initialize the Project Config from the Data File.
5959
*/
6060
- (nullable instancetype)initWithDatafile:(nullable NSData *)datafile
61-
withLogger:(nullable id<OPTLYLogger>)logger
62-
withErrorHandler:(nullable id<OPTLYErrorHandler>)errorHandler;
61+
withLogger:(nullable id<OPTLYLogger>)logger
62+
withErrorHandler:(nullable id<OPTLYErrorHandler>)errorHandler;
6363

6464
/**
6565
* Get an Experiment object for a key.

OptimizelySDKCore/OptimizelySDKCore/OPTLYValidator.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ + (BOOL)validatePreconditions:(OPTLYProjectConfig *)config
4848
// check if the user is in the experiment
4949
BOOL isUserInExperiment = [OPTLYValidator isUserInExperiment:config experimentKey:experimentKey attributes:attributes];
5050
if (!isUserInExperiment) {
51-
NSString *logMessage = [NSString stringWithFormat:OPTLYLoggerMessagesConversionFailAudienceTargeting, userId, experimentKey];
51+
NSString *logMessage = [NSString stringWithFormat:OPTLYLoggerMessagesFailAudienceTargeting, userId, experimentKey];
5252
[config.logger logMessage:logMessage withLevel:OptimizelyLogLevelInfo];
5353
return false;
5454
}

0 commit comments

Comments
 (0)