Skip to content

Commit 82a245a

Browse files
Merge branch 'master' into loggerFactory
2 parents c47b468 + 0941cbc commit 82a245a

Some content is hidden

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

47 files changed

+896
-868
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ jobs:
3131
language: swift
3232
os: osx
3333
osx_image: xcode10.1
34-
addons:
35-
srcclr: true
3634
install: gem install cocoapods
3735
script:
3836
- pod spec lint --quick
37+
after_script:
38+
- curl -sSL https://download.sourceclear.com/ci.sh | bash
3939

4040
- &unittests
4141
stage: 'Unit Tests'

DemoObjCApp/AppDelegate.m

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@
1616

1717
#import "AppDelegate.h"
1818
#import "VariationViewController.h"
19-
#import "FailureViewController.h"
2019
#import "CustomLogger.h"
20+
#import "SamplesForAPI.h"
2121

2222
@import Optimizely;
23-
#if TARGET_OS_IOS
24-
@import Amplitude_iOS;
25-
#endif
2623

2724

2825
static NSString * const kOptimizelySdkKey = @"FCnSegiEkRry9rhVMroit4";
@@ -58,14 +55,15 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
5855
// MARK: - Initialization Examples
5956

6057
-(void)initializeOptimizelySDKAsynchronous {
61-
self.optimizely = [[OptimizelyClient alloc] initWithSdkKey:kOptimizelySdkKey];
58+
DefaultEventDispatcher *eventDispacher = [[DefaultEventDispatcher alloc] initWithTimerInterval:1];
59+
60+
self.optimizely = [[OptimizelyClient alloc] initWithSdkKey:kOptimizelySdkKey logger:nil eventDispatcher:eventDispacher userProfileService:nil periodicDownloadInterval:@(5) defaultLogLevel:OptimizelyLogLevelDebug];
6261

6362
[self.optimizely startWithCompletion:^(NSData *data, NSError *error) {
6463
if (error == nil) {
6564
NSLog(@"Optimizely SDK initialized successfully!");
6665
} else {
6766
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
68-
self.optimizely = nil;
6967
}
7068

7169
[self startWithRootViewController];
@@ -76,7 +74,6 @@ -(void)initializeOptimizelySDKSynchronous {
7674
NSString *localDatafilePath = [[NSBundle mainBundle] pathForResource:kOptimizelyDatafileName ofType:@"json"];
7775
if (localDatafilePath == nil) {
7876
NSAssert(false, @"Local datafile cannot be found");
79-
self.optimizely = nil;
8077
return;
8178
}
8279

@@ -86,15 +83,13 @@ -(void)initializeOptimizelySDKSynchronous {
8683

8784
if (datafileJSON == nil) {
8885
NSLog(@"Invalid JSON format");
89-
self.optimizely = nil;
9086
} else {
9187
NSError *error;
9288
BOOL status = [self.optimizely startWithDatafile:datafileJSON error:&error];
9389
if (status) {
9490
NSLog(@"Optimizely SDK initialized successfully!");
9591
} else {
9692
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
97-
self.optimizely = nil;
9893
}
9994
}
10095

@@ -114,7 +109,7 @@ -(void)initializeOptimizelySDKWithCustomization {
114109
eventDispatcher:nil
115110
userProfileService:nil
116111
periodicDownloadInterval:customDownloadIntervalInSecs
117-
defaultLogLevel:OptimizelyLogLevelInfo];
112+
defaultLogLevel:OptimizelyLogLevelDebug];
118113

119114
NSNumber *notifId;
120115
notifId = [self.optimizely.notificationCenter addDecisionNotificationListenerWithDecisionListener:^(NSString *type,
@@ -129,28 +124,13 @@ -(void)initializeOptimizelySDKWithCustomization {
129124
NSDictionary<NSString *,id> *attributes, NSDictionary<NSString *,id> *eventTags, NSDictionary<NSString *,id> *event) {
130125
NSLog(@"Received track notification: %@ %@ %@ %@ %@", eventKey, userId, attributes, eventTags, event);
131126

132-
133-
#if TARGET_OS_IOS
134-
// most of the third-party integrations only support iOS, so the sample code is only targeted for iOS builds
135-
136-
// Amplitude example
137-
[Amplitude.instance initializeApiKey:@"YOUR_API_KEY_HERE"];
138-
139-
NSString *propertyKey = [NSString stringWithFormat:@"[Optimizely] %@", eventKey];
140-
AMPIdentify *identify = [[AMPIdentify alloc] init];
141-
[identify set:propertyKey value:userId];
142-
// Track event (optional)
143-
NSString *eventIdentifier = [NSString stringWithFormat:@"[Optimizely] %@ - %@", eventKey, userId];
144-
[Amplitude.instance logEvent:eventIdentifier];
145-
#endif
146127
}];
147128

148129
[self.optimizely startWithCompletion:^(NSData *data, NSError *error) {
149130
if (error == nil) {
150131
NSLog(@"Optimizely SDK initialized successfully!");
151132
} else {
152133
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
153-
self.optimizely = nil;
154134
}
155135

156136
[self startWithRootViewController];
@@ -161,12 +141,14 @@ -(void)initializeOptimizelySDKWithCustomization {
161141

162142
-(void)startWithRootViewController {
163143
dispatch_async(dispatch_get_main_queue(), ^{
144+
// For sample codes for other APIs, see "Samples/SamplesForAPI.m"
145+
164146
NSError *error;
165147
NSString *variationKey = [self.optimizely activateWithExperimentKey:kOptimizelyExperimentKey
166148
userId:self.userId
167149
attributes:self.attributes
168150
error:&error];
169-
151+
170152
if (variationKey != nil) {
171153
[self openVariationViewWithVariationKey:variationKey];
172154
} else {

DemoObjCApp/DemoObjcApp.xcodeproj/project.pbxproj

Lines changed: 16 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@
2525
6E9681B221EEA3D8009B7FEC /* ProximaNova-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6E9681A921EEA3D8009B7FEC /* ProximaNova-Regular.otf */; };
2626
6E9681B321EEA3D8009B7FEC /* ProximaNova-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6E9681A921EEA3D8009B7FEC /* ProximaNova-Regular.otf */; };
2727
6E9681BA21EEB361009B7FEC /* VariationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456521EE5DE3005346CC /* VariationViewController.m */; };
28-
6E9681BB21EEB361009B7FEC /* FailureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456721EE5DE3005346CC /* FailureViewController.m */; };
29-
6E9681BC21EEB361009B7FEC /* SplashScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */; };
3028
6E9681BD21EEB364009B7FEC /* VariationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456521EE5DE3005346CC /* VariationViewController.m */; };
31-
6E9681BE21EEB364009B7FEC /* FailureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456721EE5DE3005346CC /* FailureViewController.m */; };
32-
6E9681BF21EEB364009B7FEC /* SplashScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */; };
3329
6E9681D821EFA5B2009B7FEC /* CustomLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E9681D721EFA5B2009B7FEC /* CustomLogger.m */; };
3430
6E9681D921EFA5B2009B7FEC /* CustomLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E9681D721EFA5B2009B7FEC /* CustomLogger.m */; };
3531
6EB8456B21EE5DE3005346CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456421EE5DE3005346CC /* AppDelegate.m */; };
3632
6EB8456C21EE5DE3005346CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8456421EE5DE3005346CC /* AppDelegate.m */; };
33+
6EFA3206227CD55E006FA572 /* SamplesForAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EFA3205227CD55E006FA572 /* SamplesForAPI.m */; };
34+
6EFA3207227CD55E006FA572 /* SamplesForAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EFA3205227CD55E006FA572 /* SamplesForAPI.m */; };
3735
A0C60F82A88EDB74234D7D3F /* Pods_DemoObjctvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48C9592909E0CF5074F9A84D /* Pods_DemoObjctvOS.framework */; };
3836
/* End PBXBuildFile section */
3937

@@ -178,17 +176,15 @@
178176
6E9681A921EEA3D8009B7FEC /* ProximaNova-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ProximaNova-Regular.otf"; sourceTree = "<group>"; };
179177
6E9681D421EFA5B2009B7FEC /* CustomLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomLogger.h; sourceTree = "<group>"; };
180178
6E9681D721EFA5B2009B7FEC /* CustomLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomLogger.m; sourceTree = "<group>"; };
181-
6EB8456321EE5DE3005346CC /* SplashScreenViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashScreenViewController.h; sourceTree = "<group>"; };
182179
6EB8456421EE5DE3005346CC /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
183180
6EB8456521EE5DE3005346CC /* VariationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VariationViewController.m; sourceTree = "<group>"; };
184181
6EB8456621EE5DE3005346CC /* VariationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VariationViewController.h; sourceTree = "<group>"; };
185-
6EB8456721EE5DE3005346CC /* FailureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FailureViewController.m; sourceTree = "<group>"; };
186-
6EB8456821EE5DE3005346CC /* FailureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FailureViewController.h; sourceTree = "<group>"; };
187-
6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplashScreenViewController.m; sourceTree = "<group>"; };
188182
6EB8456A21EE5DE3005346CC /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
189183
6EF7498E21E404BB008B22A0 /* DemoObjciOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoObjciOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
190184
6EF7499F21E404BC008B22A0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
191185
6EF749A821E404D6008B22A0 /* DemoObjctvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoObjctvOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
186+
6EFA3204227CD55E006FA572 /* SamplesForAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SamplesForAPI.h; sourceTree = "<group>"; };
187+
6EFA3205227CD55E006FA572 /* SamplesForAPI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SamplesForAPI.m; sourceTree = "<group>"; };
192188
762D1F9E4AA702083D17C4C9 /* Pods-DemoObjciOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoObjciOS.release.xcconfig"; path = "../Pods/Target Support Files/Pods-DemoObjciOS/Pods-DemoObjciOS.release.xcconfig"; sourceTree = "<group>"; };
193189
D47F5FC88600AFD4E656D50A /* Pods-DemoObjciOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoObjciOS.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-DemoObjciOS/Pods-DemoObjciOS.debug.xcconfig"; sourceTree = "<group>"; };
194190
D58542E1B5771327083E56E2 /* Pods-DemoObjctvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoObjctvOS.release.xcconfig"; path = "../Pods/Target Support Files/Pods-DemoObjctvOS/Pods-DemoObjctvOS.release.xcconfig"; sourceTree = "<group>"; };
@@ -307,11 +303,8 @@
307303
6EB8456421EE5DE3005346CC /* AppDelegate.m */,
308304
6EB8456621EE5DE3005346CC /* VariationViewController.h */,
309305
6EB8456521EE5DE3005346CC /* VariationViewController.m */,
310-
6EB8456821EE5DE3005346CC /* FailureViewController.h */,
311-
6EB8456721EE5DE3005346CC /* FailureViewController.m */,
312-
6EB8456321EE5DE3005346CC /* SplashScreenViewController.h */,
313-
6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */,
314306
6E96812021EE957B009B7FEC /* Customization */,
307+
6EFA322A227CDDF0006FA572 /* Samples */,
315308
6E96817721EEA321009B7FEC /* DemoObjciOS */,
316309
6E96817321EEA321009B7FEC /* DemoObjctvOS */,
317310
6E9681A121EEA3D8009B7FEC /* SharedResources */,
@@ -331,6 +324,15 @@
331324
name = Products;
332325
sourceTree = "<group>";
333326
};
327+
6EFA322A227CDDF0006FA572 /* Samples */ = {
328+
isa = PBXGroup;
329+
children = (
330+
6EFA3204227CD55E006FA572 /* SamplesForAPI.h */,
331+
6EFA3205227CD55E006FA572 /* SamplesForAPI.m */,
332+
);
333+
path = Samples;
334+
sourceTree = "<group>";
335+
};
334336
E4F9C3F25D5A22985B6E41CD /* Frameworks */ = {
335337
isa = PBXGroup;
336338
children = (
@@ -364,7 +366,6 @@
364366
6EF7498B21E404BB008B22A0 /* Frameworks */,
365367
6EF7498C21E404BB008B22A0 /* Resources */,
366368
6E4DD93B21E6708E00B0C2C7 /* Embed Frameworks */,
367-
7493B4816C0BC9BAABDE8B5B /* [CP] Embed Pods Frameworks */,
368369
);
369370
buildRules = (
370371
);
@@ -602,34 +603,6 @@
602603
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
603604
showEnvVarsInLog = 0;
604605
};
605-
7493B4816C0BC9BAABDE8B5B /* [CP] Embed Pods Frameworks */ = {
606-
isa = PBXShellScriptBuildPhase;
607-
buildActionMask = 2147483647;
608-
files = (
609-
);
610-
inputFileListPaths = (
611-
);
612-
inputPaths = (
613-
"${PODS_ROOT}/Target Support Files/Pods-DemoObjciOS/Pods-DemoObjciOS-frameworks.sh",
614-
"${BUILT_PRODUCTS_DIR}/Amplitude-iOS/Amplitude_iOS.framework",
615-
"${BUILT_PRODUCTS_DIR}/GoogleToolboxForMac/GoogleToolboxForMac.framework",
616-
"${PODS_ROOT}/Localytics/Localytics-iOS-5.5.0/Localytics.framework",
617-
"${BUILT_PRODUCTS_DIR}/Mixpanel-swift/Mixpanel.framework",
618-
);
619-
name = "[CP] Embed Pods Frameworks";
620-
outputFileListPaths = (
621-
);
622-
outputPaths = (
623-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Amplitude_iOS.framework",
624-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleToolboxForMac.framework",
625-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Localytics.framework",
626-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mixpanel.framework",
627-
);
628-
runOnlyForDeploymentPostprocessing = 0;
629-
shellPath = /bin/sh;
630-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DemoObjciOS/Pods-DemoObjciOS-frameworks.sh\"\n";
631-
showEnvVarsInLog = 0;
632-
};
633606
/* End PBXShellScriptBuildPhase section */
634607

635608
/* Begin PBXSourcesBuildPhase section */
@@ -640,9 +613,8 @@
640613
6E9681BA21EEB361009B7FEC /* VariationViewController.m in Sources */,
641614
6EB8456B21EE5DE3005346CC /* AppDelegate.m in Sources */,
642615
6E9681D821EFA5B2009B7FEC /* CustomLogger.m in Sources */,
643-
6E9681BB21EEB361009B7FEC /* FailureViewController.m in Sources */,
616+
6EFA3206227CD55E006FA572 /* SamplesForAPI.m in Sources */,
644617
6E4DD7F721E51E5500B0C2C7 /* main.m in Sources */,
645-
6E9681BC21EEB361009B7FEC /* SplashScreenViewController.m in Sources */,
646618
);
647619
runOnlyForDeploymentPostprocessing = 0;
648620
};
@@ -653,9 +625,8 @@
653625
6E9681BD21EEB364009B7FEC /* VariationViewController.m in Sources */,
654626
6EB8456C21EE5DE3005346CC /* AppDelegate.m in Sources */,
655627
6E9681D921EFA5B2009B7FEC /* CustomLogger.m in Sources */,
656-
6E9681BE21EEB364009B7FEC /* FailureViewController.m in Sources */,
628+
6EFA3207227CD55E006FA572 /* SamplesForAPI.m in Sources */,
657629
6E4DD7F821E51E5600B0C2C7 /* main.m in Sources */,
658-
6E9681BF21EEB364009B7FEC /* SplashScreenViewController.m in Sources */,
659630
);
660631
runOnlyForDeploymentPostprocessing = 0;
661632
};

DemoObjCApp/FailureViewController.m

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

DemoObjCApp/FailureViewController.h renamed to DemoObjCApp/Samples/SamplesForAPI.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//
12
/****************************************************************************
23
* Copyright 2019, Optimizely, Inc. and contributors *
34
* *
@@ -13,13 +14,16 @@
1314
* See the License for the specific language governing permissions and *
1415
* limitations under the License. *
1516
***************************************************************************/
17+
1618

17-
#import <UIKit/UIKit.h>
19+
#import <Foundation/Foundation.h>
1820

1921
NS_ASSUME_NONNULL_BEGIN
2022

21-
@interface FailureViewController : UIViewController
23+
@class OptimizelyClient;
2224

25+
@interface SamplesForAPI: NSObject
26+
+(void)run:(OptimizelyClient*)optimizely;
2327
@end
2428

2529
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)