Releases: Iterable/iterable-swift-sdk
6.5.0-beta1
Merge pull request #697 from Iterable/evan/MOB-7313-prepare-3.5.0-bet…
6.4.16
Added
sendRequestWithRetriesfunction added as part of theNetworkHelperclass- For an API request that results in a 500-level error response, the SDK now executes up to five retries. Before each of the final three attempts, there is a two-second delay.
Changed
- updates
sendRequestinRequestProcessorUtilto retry the API request that resulted in a 401 response upon receipt of a new JWT - updates
NetworkHelperclass logic to usesendRequestWithRetriesmethod which wraps the originalnetworkSession.makeRequest - When an API request fails with a 401 because of an invalid JWT token, the SDK now immediately requests a new JWT token for the signed-in user.
6.4.15
Added
- This release allows you to use projects hosted on Iterable's EU data center. If your project is hosted on Iterable's European data center (EUDC), configure the SDK to use Iterable's EU-based API endpoints:
Swift
let config = IterableConfig()
config.dataRegion = IterableDataRegion.EU
IterableAPI.initialize(apiKey: "<YOUR_API_KEY>", launchOptions: launchOptions, config: config)Objective-C
IterableConfig *config = [[IterableConfig alloc] init];
config.dataRegion = IterableDataRegion.EU;
[IterableAPI initializeWithApiKey:@"<YOUR_API_KEY>" launchOptions:launchOptions config:config];Fixed
- Offline Mode is now off by default. Offline mode components will only load when the
offlineModeconfiguration for RequestHandler is set to true.
Changed
- Offline mode configuration now persists throughout the current app session. Changes will take effect from the next app session.
6.4.14
Added
- Success and Failure handlers can now be passed to following functions:
InAppManager.remove,InAppManager.setRead,IterableAPI.setEmailandIterableAPI.setUserId
6.4.13
Added
ITBNotificationServiceExtensionhas a new optional delegate in the scenario of wanting to receive and pass along push information (e.g. Firebase)
Changed
- The behavior of
lastPushPayloadnow matches that of the Android SDK in being purely in memory and will now not count the payload of a silent push
Fixed
- The
itbl_inapp.jsonfile generated from in-app messaging has been relocated to the correct spot
6.4.12
Added
- Added a new function to
IterableAPIto get the currently set authentication token - Added a new function (
onTokenRegistrationFailed) to theIterableAuthDelegateupon authentication token retrieval failure
Changed
- Changed
setEmailandsetUserIdto run through the login process if also sent in an authentication token (and a non-nilID)
Fixed
- Fixed instances where setting a new authentication token for a user failed
6.4.11
Fixed
- Fixed so that
AuthManagerclears the previous refresh timer before setting a new one (thanks, @cranberyxl!)
6.4.10
Fixed
- Fixed instances where
config.inAppDisplayIntervalwould not set custom interval set via react native layer.
6.4.9
Added
Version 6.4.9 of Iterable's iOS SDK makes it possible to store in-app messages in memory, rather than in an unencrypted local file. However, an unencrypted local file is still the default option.
To store in-app messages in memory, set useInMemoryStorageForInApps to true:
Swift
let config = IterableConfig()
config.useInMemoryStorageForInApps = true
IterableAPI.initialize(apiKey: "<YOUR_API_KEY>", launchOptions: launchOptions, config: config)Objective-C
IterableConfig *config = [[IterableConfig alloc] init];
config.useInMemoryStorageForInApps = YES;
[IterableAPI initializeWithApiKey:@"<YOUR_API_KEY>" launchOptions:launchOptions config:config];When users upgrade to a version of your iOS app that uses this version of the SDK (or higher), and you've enabled this option, the local file used for in-app message storage (if it already exists) is deleted. However, no data is lost.
6.4.8
Changed
Starting with this release, as a privacy enhancement, Iterable's iOS SDK encrypts the following data when storing it at rest:
email— The user's email address.userId— The user's ID.authToken— The JWT used to authenticate the user with Iterable's API.lastPushPayload— The JSON payload that came along with the last push notification received by the app.
(Note that Iterable's iOS SDK does not store in-app messages at rest—before or after this update.)
⚠️ Iterable's iOS SDK does, in fact, store in-app messages in an unencrypted local file. However, version 6.4.9 provides an option to store them in memory, instead.
When a user upgrades to a version of your app that uses this version of the SDK (or higher), the fields shown above are encrypted. No data that's already stored is lost.
For more information about the encryption described above, examine the SDK source code: