Skip to content

Commit 5b75ab9

Browse files
Merge branch 'master' into jae/samples
2 parents c276a50 + 4a22fb1 commit 5b75ab9

28 files changed

+262
-590
lines changed

.travis.yml

Lines changed: 54 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,69 @@
1-
language: swift
2-
osx_image: xcode10.1
3-
branches:
4-
only:
5-
- master
6-
env:
7-
matrix:
8-
- SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=9.1 NAME='iPad Air'
9-
- SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=10.1 NAME='iPhone 7 Plus'
10-
- SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=10.3.1 NAME='iPhone 7'
11-
- SCHEME=OptimizelySwiftSDK-tvOS TEST_SDK=appletvsimulator PLATFORM='tvOS Simulator' OS=10.2 NAME='Apple TV 1080p'
12-
before_install:
13-
- gem install slather --no-document --quiet
14-
install: pod install --repo-update
15-
addons:
16-
srcclr: true
17-
script:
18-
- pod spec lint --quick
19-
- if [[ "$TRAVIS_BRANCH" == "master" ]]; then xcodebuild test -workspace OptimizelySDK.xcworkspace -scheme $SCHEME -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk $TEST_SDK -destination "platform=$PLATFORM,OS=$OS,name=$NAME" ONLY_ACTIVE_ARCH=YES > buildoutput; fi
20-
- more buildoutput | xcpretty
21-
after_success:
22-
- slather
23-
- sleep 5 # https://github.com/travis-ci/travis-ci/issues/4725
1+
language: minimal
2+
os: linux
243

254
# Integration tests need to run first to reset the PR build status to pending
265
stages:
27-
- 'Integration tests'
28-
- 'Test'
6+
- name: 'Trigger Integration Tests'
7+
if: env(RUN_COMPAT_SUITE) = true
8+
- name: 'SourceClear and Lint'
9+
- name: 'Unit Tests'
10+
- name: 'Prepare for release'
11+
if: env(PREP) = true and type = api
12+
- name: 'Release'
13+
if: env(RELEASE) = true and type = api
2914

3015
jobs:
3116
include:
32-
- stage: 'Integration tests'
33-
if: env(RUN_COMPAT_SUITE) = true
17+
- stage: 'Trigger Integration Tests'
18+
language: minimal
19+
os: linux
3420
env:
3521
- SDK=swift
3622
- BUILD_NUMBER=$TRAVIS_BUILD_NUMBER
3723
- TESTAPP_TAG=master
3824
cache: false
39-
language: minimal
40-
os: linux
4125
install:
4226
- mkdir $HOME/travisci-tools && pushd $HOME/travisci-tools && git init && git pull https://$CI_USER_TOKEN@github.com/optimizely/travisci-tools.git && popd
4327
script:
4428
- "$HOME/travisci-tools/fsc-trigger/trigger_fullstack-sdk-compat.sh"
45-
after_success: travis_terminate 0
29+
30+
- stage: 'SourceClear and Lint'
31+
language: swift
32+
os: osx
33+
osx_image: xcode10.1
34+
addons:
35+
srcclr: true
36+
install: gem install cocoapods
37+
script:
38+
- pod spec lint --quick
39+
40+
- &unittests
41+
stage: 'Unit Tests'
42+
language: swift
43+
os: osx
44+
osx_image: xcode10.1
45+
branches:
46+
only:
47+
- master
48+
env: SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=9.1 NAME='iPad Air'
49+
name: PLATFORM='iOS Simulator' OS=9.1 NAME='iPad Air'
50+
before_install:
51+
- gem install slather --no-document --quiet
52+
install:
53+
- pod install --repo-update
54+
script:
55+
- pod spec lint --quick
56+
- if [[ "$TRAVIS_BRANCH" == "master" ]]; then xcodebuild test -workspace OptimizelySDK.xcworkspace -scheme $SCHEME -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk $TEST_SDK -destination "platform=$PLATFORM,OS=$OS,name=$NAME" ONLY_ACTIVE_ARCH=YES > buildoutput; fi
57+
- cat buildoutput | xcpretty
58+
after_success:
59+
- slather
60+
- sleep 5 # https://github.com/travis-ci/travis-ci/issues/4725
61+
- <<: *unittests
62+
env: SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=10.1 NAME='iPhone 7 Plus'
63+
name: PLATFORM='iOS Simulator' OS=10.1 NAME='iPhone 7 Plus'
64+
- <<: *unittests
65+
env: SCHEME=OptimizelySwiftSDK-iOS TEST_SDK=iphonesimulator PLATFORM='iOS Simulator' OS=10.3.1 NAME='iPhone 7'
66+
name: PLATFORM='iOS Simulator' OS=10.3.1 NAME='iPhone 7'
67+
- <<: *unittests
68+
env: SCHEME=OptimizelySwiftSDK-tvOS TEST_SDK=appletvsimulator PLATFORM='tvOS Simulator' OS=10.2 NAME='Apple TV 1080p'
69+
name: PLATFORM='tvOS Simulator' OS=10.2 NAME='Apple TV 1080p'

DemoObjCApp/AppDelegate.m

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
#import "AppDelegate.h"
1818
#import "VariationViewController.h"
19-
#import "FailureViewController.h"
2019
#import "CustomLogger.h"
2120
#import "SamplesForAPI.h"
2221

@@ -40,14 +39,10 @@ @interface AppDelegate ()
4039
@implementation AppDelegate
4140

4241
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
43-
// most of the third-party integrations only support iOS, so the sample code is only targeted for iOS builds
44-
#if TARGET_OS_IOS
45-
46-
#endif
47-
48-
self.userId = [NSString stringWithFormat:@"%d", arc4random()];
49-
self.attributes = @{ @"browser_type": @"safari", @"bool_attr": @(false) };
5042

43+
self.userId = [NSString stringWithFormat:@"%d", arc4random_uniform(300000)];
44+
self.attributes = @{ @"browser_type": @"safari" };
45+
5146
// initialize SDK in one of these two ways:
5247
// (1) asynchronous SDK initialization (RECOMMENDED)
5348
// - fetch a JSON datafile from the server
@@ -70,7 +65,6 @@ -(void)initializeOptimizelySDKAsynchronous {
7065
NSLog(@"Optimizely SDK initialized successfully!");
7166
} else {
7267
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
73-
self.optimizely = nil;
7468
}
7569

7670
[self startWithRootViewController];
@@ -81,7 +75,6 @@ -(void)initializeOptimizelySDKSynchronous {
8175
NSString *localDatafilePath = [[NSBundle mainBundle] pathForResource:kOptimizelyDatafileName ofType:@"json"];
8276
if (localDatafilePath == nil) {
8377
NSAssert(false, @"Local datafile cannot be found");
84-
self.optimizely = nil;
8578
return;
8679
}
8780

@@ -91,15 +84,13 @@ -(void)initializeOptimizelySDKSynchronous {
9184

9285
if (datafileJSON == nil) {
9386
NSLog(@"Invalid JSON format");
94-
self.optimizely = nil;
9587
} else {
9688
NSError *error;
9789
BOOL status = [self.optimizely startWithDatafile:datafileJSON error:&error];
9890
if (status) {
9991
NSLog(@"Optimizely SDK initialized successfully!");
10092
} else {
10193
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
102-
self.optimizely = nil;
10394
}
10495
}
10596

@@ -134,8 +125,13 @@ -(void)initializeOptimizelySDKWithCustomization {
134125
NSDictionary<NSString *,id> *attributes, NSDictionary<NSString *,id> *eventTags, NSDictionary<NSString *,id> *event) {
135126
NSLog(@"Received track notification: %@ %@ %@ %@ %@", eventKey, userId, attributes, eventTags, event);
136127

128+
137129
#if TARGET_OS_IOS
130+
// most of the third-party integrations only support iOS, so the sample code is only targeted for iOS builds
131+
138132
// Amplitude example
133+
[Amplitude.instance initializeApiKey:@"YOUR_API_KEY_HERE"];
134+
139135
NSString *propertyKey = [NSString stringWithFormat:@"[Optimizely] %@", eventKey];
140136
AMPIdentify *identify = [[AMPIdentify alloc] init];
141137
[identify set:propertyKey value:userId];
@@ -150,7 +146,6 @@ -(void)initializeOptimizelySDKWithCustomization {
150146
NSLog(@"Optimizely SDK initialized successfully!");
151147
} else {
152148
NSLog(@"Optimizely SDK initiliazation failed: %@", error.localizedDescription);
153-
self.optimizely = nil;
154149
}
155150

156151
[self startWithRootViewController];
@@ -168,7 +163,7 @@ -(void)startWithRootViewController {
168163
userId:self.userId
169164
attributes:self.attributes
170165
error:&error];
171-
166+
172167
if (variationKey != nil) {
173168
[self openVariationViewWithVariationKey:variationKey];
174169
} else {

DemoObjCApp/DemoObjcApp.xcodeproj/project.pbxproj

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@
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 */; };
@@ -180,13 +176,9 @@
180176
6E9681A921EEA3D8009B7FEC /* ProximaNova-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ProximaNova-Regular.otf"; sourceTree = "<group>"; };
181177
6E9681D421EFA5B2009B7FEC /* CustomLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomLogger.h; sourceTree = "<group>"; };
182178
6E9681D721EFA5B2009B7FEC /* CustomLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomLogger.m; sourceTree = "<group>"; };
183-
6EB8456321EE5DE3005346CC /* SplashScreenViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashScreenViewController.h; sourceTree = "<group>"; };
184179
6EB8456421EE5DE3005346CC /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
185180
6EB8456521EE5DE3005346CC /* VariationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VariationViewController.m; sourceTree = "<group>"; };
186181
6EB8456621EE5DE3005346CC /* VariationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VariationViewController.h; sourceTree = "<group>"; };
187-
6EB8456721EE5DE3005346CC /* FailureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FailureViewController.m; sourceTree = "<group>"; };
188-
6EB8456821EE5DE3005346CC /* FailureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FailureViewController.h; sourceTree = "<group>"; };
189-
6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplashScreenViewController.m; sourceTree = "<group>"; };
190182
6EB8456A21EE5DE3005346CC /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
191183
6EF7498E21E404BB008B22A0 /* DemoObjciOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoObjciOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
192184
6EF7499F21E404BC008B22A0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
@@ -311,10 +303,6 @@
311303
6EB8456421EE5DE3005346CC /* AppDelegate.m */,
312304
6EB8456621EE5DE3005346CC /* VariationViewController.h */,
313305
6EB8456521EE5DE3005346CC /* VariationViewController.m */,
314-
6EB8456821EE5DE3005346CC /* FailureViewController.h */,
315-
6EB8456721EE5DE3005346CC /* FailureViewController.m */,
316-
6EB8456321EE5DE3005346CC /* SplashScreenViewController.h */,
317-
6EB8456921EE5DE3005346CC /* SplashScreenViewController.m */,
318306
6E96812021EE957B009B7FEC /* Customization */,
319307
6EFA322A227CDDF0006FA572 /* Samples */,
320308
6E96817721EEA321009B7FEC /* DemoObjciOS */,
@@ -654,10 +642,9 @@
654642
6E9681BA21EEB361009B7FEC /* VariationViewController.m in Sources */,
655643
6EB8456B21EE5DE3005346CC /* AppDelegate.m in Sources */,
656644
6E9681D821EFA5B2009B7FEC /* CustomLogger.m in Sources */,
645+
657646
6EFA3206227CD55E006FA572 /* SamplesForAPI.m in Sources */,
658-
6E9681BB21EEB361009B7FEC /* FailureViewController.m in Sources */,
659647
6E4DD7F721E51E5500B0C2C7 /* main.m in Sources */,
660-
6E9681BC21EEB361009B7FEC /* SplashScreenViewController.m in Sources */,
661648
);
662649
runOnlyForDeploymentPostprocessing = 0;
663650
};
@@ -669,9 +656,7 @@
669656
6EB8456C21EE5DE3005346CC /* AppDelegate.m in Sources */,
670657
6E9681D921EFA5B2009B7FEC /* CustomLogger.m in Sources */,
671658
6EFA3207227CD55E006FA572 /* SamplesForAPI.m in Sources */,
672-
6E9681BE21EEB364009B7FEC /* FailureViewController.m in Sources */,
673659
6E4DD7F821E51E5600B0C2C7 /* main.m in Sources */,
674-
6E9681BF21EEB364009B7FEC /* SplashScreenViewController.m in Sources */,
675660
);
676661
runOnlyForDeploymentPostprocessing = 0;
677662
};

DemoObjCApp/FailureViewController.h

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

DemoObjCApp/FailureViewController.m

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

DemoObjCApp/SplashScreenViewController.h

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

DemoObjCApp/SplashScreenViewController.m

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

0 commit comments

Comments
 (0)