forked from splitio/ios-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.txt
286 lines (213 loc) · 12.2 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
2.24.6: (Apr 10, 2024)
- Fixed issue when triggering SDK events
2.24.5: (Mar 20, 2024)
- Improved Ready From Cache event triggering time by applying the following changes:
- Triggering feature flags fetch after loading local data
- Replacing Codable JSON parsing by JSONSerializable
- Allowing run SDK events handler in a custom DispatchQueue
2.24.4: (Feb 16, 2024)
- Fixed issue when sending telemetry stats
- Fixed issue with CoreData scopes when using SPM to link the SDK
2.24.3: (Feb 6, 2024)
- Renamed internal class to avoid conflicts when using SDK as an XCFramework.
- Improved generate_xcframework script.
2.24.2: (Jan 24, 2024)
- Added method in localhost API to update feature flag definitions programmatically.
- Fixed validation when using custom endpoints.
- Fixed instant feature flag update validation by adding previous change number check.
2.24.1: (Jan 12, 2024)
- Added required privacy manifest.
2.24.0: (Dec 6, 2023)
- Added `prefix` configuration parameter, which allows to use a prefix when naming the SDK storage. Use this when using multiple `SplitFactory` instances with the same SDK key.
2.23.0: (Nov 1, 2023)
- Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
- Added new variations of the get treatment methods to support evaluating flags in given flag set/s.
- getTreatmentsByFlagSet and getTreatmentsByFlagSets
- getTreatmentWithConfigByFlagSets and getTreatmentsWithConfigByFlagSets
- Added a new optional Split Filter configuration option. This allows the SDK and Split services to only synchronize the flags in the specified flag sets, avoiding unused or unwanted flags from being synced on the SDK instance, bringing all the benefits from a reduced payload.
- Updated the following SDK manager methods to expose flag sets on flag views.
- Added `defaultTreatment` property to the `SplitView` object returned by the `split` and `splits` methods of the SDK manager.
- Removed APIs that were not in use and required a privacy manifest.
2.22.0: (Aug 14, 2023)
- Adding support to use the SDK in extensions. Thanks @Jeff-Meadows!
2.21.0: (Jul 18, 2023)
- Improved streaming architecture implementation to apply feature flag updates from the notification received which is now enhanced, improving efficiency and reliability of the whole update system.
- Added logic to do a full check of feature flags immediately when the app comes back to foreground, limited to once per minute.
- Updated SpliResult init to be public in order to improve testability.
2.20.2: (Jun 23, 2023)
- Improved the streaming disconnection implementation to address and resolve sporadic crashes.
2.20.1: (May 15, 2023)
- Updated terminology on the SDKs codebase to be more aligned with current standard without causing a breaking change. The core change is the term split for feature flag on things like logs and quick help comments.
2.20.0: (Apr 25, 2023)
- Added the ability to encrypt the local cache of rollout plans via 'encryptionEnabled' config.
- Removed Schema causing issues when building with Carthage
- Added config to allow setting a customized network requests authenticator
2.19.1: (Jan 30, 2023)
- Improving SDK Ready and SDK Ready from cache events triggering time by parsing loaded / received data in parallel
2.19.0: (Jan 16, 2023)
- Added user consent feature to allow delaying or disabling the data tracking from SDK until user consent is explicitly granted or declined. Read more in our docs.
2.18.2: (Nov 22, 2022)
- Fixed issue on take method of Blocking Queue component
2.18.1: (Oct 26, 2022)
- Fixed possible issue on streaming disconnection logic.
2.18.0: (Oct 24, 2022)
- Added support for MacOS, TvOS and WatchOS.
2.17.0: (Oct 11, 2022)
- Added a new impressions mode for the SDK called NONE, to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions.
2.16.2: (Sep 1, 2022)
- Memory handling improvements.
2.16.1: (Aug 8, 2022)
- Reverted xcode warning fix preventing Swift Package Manager to work properly
2.16.0: (Jul 27, 2022)
- Improved log handling by adding log level config. Deprecating old verbose and debug flags.
- Fixed some memory leaks found.
2.15.0: (Jun 24, 2022)
- Added a new config option to control the tasks that listen or poll for updates on feature flags and segments, via the new config syncEnabled . Running online Split will always pull the most recent updates upon initialization, this only affects updates fetching on a running instance. Useful when a consistent session experience is a must or to save resources when updates are not being used.
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.
2.14.0: (May 12, 2022)
- Added support for multiple clients: Factories can now create multiple clients with different keys while reusing the common tasks, data and behavior. Read more in our iOS SDK docs.
- Renamed STREAMING_ENABLED event to STREAMING_RESUMED
- Improved factory implementation by returning dummy classes instead of forcing unwrapp for client and manager component
2.13.2: (Mar 28, 2022)
- Removed xcframework target temporarily in SPM to avoid building issues on some projects setup.
2.13.1: (Feb 25, 2022)
- Fixed issue when reconnecting when host app became active
- Fixed and optimized component creation when streaming is disabled
2.13.0: (Jan 24, 2022)
- Updated SDK telemetry storage, metrics and updater to be more effective and send less often.
2.12.1: (Dic 2, 2021)
- Fixed atrributes config issue by making "persistentAttributesEnabled" option publicly accessible.
2.12.0: (Nov 18, 2021)
- Added Attribute binding feature to allow to optionally keep user attributes loaded within the SDK, along with the user ID, for easier usage when requesting flag.
2.11.6: (Oct 22, 2021)
- Fixed memory issue on streaming delay
- Added support for a user key containing a slash character
2.11.5: (Oct 4, 2021)
- Updated streaming logic to implement the newest versions of our Streaming services, including:
- Integration with the V2 of the Auth service, connecting to the new channels and applying the received connection delay.
- Implemented handling of thew notification types for MySegmentsV2 (keyList, bounded and unbounded)
- New control notification for environment scoped streaming reset.
- Improved initialization performance by removing hashing in initial database name generation.
2.11.4: (Ago 4, 2021)
- Fixed issue occurring sometimes when SDK Update is fired
2.11.3: (Jul 9, 2021)
- Added impressions dedupe logic to avoid sending duplicated impressions:
- Added `OPTIMIZED` and `DEBUG` modes in order to enabling/disabling how impressions are going to be sent into Split servers,
- `OPTIMIZED`: will send unique impressions in a timeframe in order to reduce how many times impressions are posted to Split.
- `DEBUG`: will send every impression generated to Split.
2.11.2: (Jun 25, 2021)
- Fixed threading issue related to CoreData
- Fixed issue when loading large localhost yaml files
2.11.1: (May 13, 2021)
- Improved event management logic to decrease "Ready From Cache" event triggering time
- Added telemetry headers to SSE connection
2.11.0: (Apr 27, 2021)
- Added the ability to synchronize data when the host application is closed or in background
- Fixed small issue with jwt and streaming disabled
- Updated my segments fetch to avoid cache when update push notification is received
2.10.0: (Apr 9, 2021)
- Added SDK Updated event to notify when feature flags or segments change
2.9.1: (Mar 10, 2021)
- Fixed performance issue when pushing data to local storage and flushing data
2.9.0: (Feb 26, 2021)
- Updated cache mechanism to use code data store instead of plain json files
- Fixed some threading race conditions in http and backoff count components
2.8.0: (Dec 22, 2020)
- Added support for Swift Packager Manager. Thanks @bsarrazin!
2.7.0: (Nov 02, 2020)
- Added support for the new Split streaming architecture. When enabled (default), the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.
2.6.0: (Ago 11, 2020)
- Added `syncConfig.addFilter()` method to SDK configuration to pass a list of filters for the feature flags that will be downloaded. Read more in our docs.
2.5.3: (Jun 30, 2020)
- Fixed issue duplicating sent impressions
- Fixed issue when rounding float values in json encoding/decoding
2.5.2: (Jan 24, 2020)
- Fixed some memory issues
2.5.1: (Dic 10, 2019)
- Added static version property in Factory
- Updated project settings suggested for xcode 11.2.1
2.5.0: (Oct 30, 2019)
- Added client destroy method for shutdown of the SDK.
- Updated integration tests suites.
- Updated client and factory initialization logic to start synchronizing as soon as factory is created.
2.4.0: (Aug 29, 2019)
- Added flush feature
- Added basic end to end tests setup
- Added swift linter
- Bugfixing - small issue with traffic types validation warning
2.3.0: (Jun 07, 2019)
- Added feature flag existence validation
- Added traffic type validation
- Added multiple factory instance validation
- Added support for Swift 5.0
2.2.0: (May 17, 2019)
- Added properties field to Track Event feature
2.1.0: (Apr 25, 2019)
- Added Dynamic configurations feature
2.0.3: (Apr 12, 2019)
- Bugfixing - Traffic allocation issue on certain scenarios
2.0.2: (Mar 13, 2019)
- Added localhost mode
- Updated file storage to use different data folders for each api key factory instance
2.0.1: (Feb 01, 2019)
- Added some pending validations missed in 2.0.0
- Improved key handling in Split Client
2.0.0: (Feb 01, 2019)
- Added Factory Builder to instanciate Split Factory.
- Removed previous Factory constructor
- Renamed protocol SplitClientProtocol to SplitClient
- Renamed protocol SplitFactoryProtocol to SplitFactory
- Renamed protocol SplitManagerProtocol to SplitManager
- Renamed old class SplitClient to DefaultSplitClient
- Renamed old class SplitFactory to DefaultSplitFactory
- Renamed old class SplitManager to DefaultSplitManager
- Replaced methods from DefaultSplitManager class (Previously named SplitManager) by read only properties
- Removed deprecated methods to set values from SplitClientConfig
- Added validations for user input
1.6.1: (Feb 7, 2019)
- Bugfixing - issue when casting from Int32 to Int on iPhone 5
1.6.0: (Jan 11, 2019)
- Added Objective C support
- Bugfixing - issue about Traffic Allocation = 1
1.5.6: (Dic 10, 2018)
- Updated file storage to cache data on disk only when app goes to background
1.5.5: (Nov 29, 2018)
- Bugfixing - retrieving null split algorithm from server
1.5.4: (Nov 16, 2018)
- Bugfixing - Any to Int64 convertion issue
- Bugfixing - issue in legacy algorithm
1.5.2: (Oct 11, 2018)
- Added internal Split metrics
- Updated project structure tree
1.5.1: (Oct 3, 2018)
- Migrated to Swift 4.2
1.5.0: (Sep 24, 2018)
- Added Split Manager feature
1.4.0: (Sep 13, 2018)
- Added get treatments feature
1.3.1: (Sep 12, 2018)
- Bugfixing - issue when loading empty my segments Cache
- Updated Deployment Target to 9.0
1.3.0: (Aug 24, 2018)
- Updated API methods and properties to make it more Swift style
- Removed CocoaPods dependency
- Improved unit tests
1.2.9: (Aug 13, 2018)
- Added impression listener
1.2.8: (Aug 3, 2018)
- Updated Cache with performance improvements
- Bugfixing - concurrency fixes for Cache Loading
1.2.0: (Jul 11, 2018)
- Added new method to handle SDK events through a closure
1.1.0: (Jul 03, 2018)
- Added Carthage support
1.0.0: (Jun 29, 2018)
- Added track feature
0.3.0: (Jun 27, 2018)
- Removed Alamofire and SwiftyJSON dependencies
0.2.1rc1: (May 24, 2018)
- Added client dependency to event background task
0.2.0: (Apr 25, 2018)
- Added events listener. Available events: SplitEvent.sdkReady and SplitEvent.sdkReadyTimedOut
0.1.5: (Mar 19, 2018)
- Added first load from cache