Skip to content

Commit ba2affe

Browse files
Updated the changelog for 1.3,0 release.
1 parent 314a201 commit ba2affe

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed

CHANGELOG.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,104 @@
11
# Optimizely Objective-C SDK Changelog
2+
## 1.3.0
3+
August 28, 2017
4+
5+
### New Features
6+
* Added the forced bucketing feature, which allows customers to force users into variations in real time for QA purposes without requiring datafile downloads from the network. The following APIs have been introduced:
7+
8+
```
9+
/**
10+
* Force a user into a variation for a given experiment.
11+
* The forced variation value does not persist across application launches.
12+
*
13+
* @param experimentKey The key for the experiment.
14+
* @param userId The user ID to be used for bucketing.
15+
* @param variationKey The variation key to force the user into.
16+
*
17+
* @return boolean A boolean value that indicates if the set completed successfully.
18+
*/
19+
- (BOOL)setForcedVariation:(nonnull NSString *)experimentKey
20+
userId:(nonnull NSString *)userId
21+
variationKey:(nonnull NSString *)variationKey;
22+
```
23+
24+
```
25+
/**
26+
* Gets the forced variation for a given user and experiment.
27+
*
28+
* @param experimentKey The key for the experiment.
29+
* @param userId The user ID to be used for bucketing.
30+
*
31+
* @return The variation the user was bucketed into. This value can be nil if the
32+
* forced variation fails.
33+
*/
34+
- (nullable OPTLYVariation *)getForcedVariation:(nonnull NSString *)experimentKey
35+
userId:(nonnull NSString *)userId;
36+
```
37+
- Added the bucketing ID feature, which allows decoupling bucketing from user identification so that a group of users that have the same bucketing ID are put into the same variation.
38+
39+
- User Profile refactor, which includes a class rename to `User Profile Service`, along with the following API additions:
40+
41+
```
42+
/**
43+
* Returns a user entity corresponding to the user ID.
44+
*
45+
* @param userId The user id to get the user entity of.
46+
* @returns A dictionary of the user profile details.
47+
**/
48+
- (nullable NSDictionary *)lookup:(nonnull NSString *)userId;
49+
```
50+
```
51+
/**
52+
* Saves the user profile.
53+
*
54+
* @param userProfile The user profile.
55+
**/
56+
- (void)save:(nonnull NSDictionary *)userProfile;
57+
```
58+
- Added default attributes.
59+
60+
### Bug Fixes
61+
* Fixed crash with string revenues in event tags.
62+
63+
## 1.1.9
64+
August 7, 2017
65+
66+
### New Features
67+
* Added Apple App Extension support by adding `APPLICATION_EXTENSION_API_ONLY = YES` to Build Settings of all Optimizely frameworks.
68+
69+
### Bug Fixes
70+
* Fixed potential bugs identified by Apple's Xcode static analyzer Analyze.
71+
72+
## 1.1.8
73+
July 28, 2017
74+
75+
### Bug Fixes
76+
* Fixed a `dispatchEvent` crash by changing a concurrent queue to a serial queue -- this was causing one of the properties we were accessing not thread-safe.
77+
78+
## 1.1.7
79+
July 20, 2017
80+
81+
### Bug Fixes
82+
* Fixed a crash caused by a dangling pointer when `dispatchEvent` is called. `strongSelf` captures the state of self (which can be an `eventDispatcher` object or `nil`) at the time the block is called. `strongSelf` will hold onto whatever it is referencing for the duration of the block execution. Therefore, `strongSelf` is still pointing to `pendingDispatchEvents` even when it gets deallocated at the time the `eventDispatcher` is deallocated. This issue was resolved by not capturing `self` using `strongSelf` and keeping the `self` reference to `self` or `weakSelf`.
83+
84+
## 1.1.3
85+
July 7, 2017
86+
87+
### Bug Fixes
88+
* Added `NS_SWIFT_NOTHROW` to make 4 `variableXxx:...:error:` Swift method signatures more consistent in appearance.
89+
90+
### Breaking Changes
91+
* Signatures for 2 existing `variableXxx:...:error:` Swift methods changed.
92+
93+
## 1.1.1
94+
May 23, 2017
95+
96+
### New Features
97+
* Added unexported_symbols.sh to create unexported_symbols.txt which hides all third-party dependency symbols in the Universal frameworks.
98+
99+
### Breaking Changes
100+
* Supply your own FMDB or JSONModel if you previously counted on Universal frameworks exposing these third-party dependencies.
101+
2102
## 1.1.0
3103
May 2, 2017
4104

0 commit comments

Comments
 (0)