Releases: Iterable/iterable-swift-sdk
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:
6.4.7
Added
- Added
setEmail
andsetUserId
as publicly accessible functions, which will set the identity of the SDK to attribute to events. The optional second parameter will take in a JWT if you already have one at the time of this call (as opposed to throughIterableAuthDelegate
).
6.4.6
6.4.5
Added
- This release makes offline events processing available to all Iterable customers who'd like to use it — just ask your customer success manager to enable it for your account. Offline events processing saves a local copy of events triggered in your app while the device is offline (up to 1000 events). When a connection is re-established and your app is in the foreground, the events will be sent to Iterable. For more information, read Offline events processing.
6.4.4
Fixed
- Core data issues.
6.4.3
Added
- Retry request on JWT token obtained.
Fixed
- Core data multithreading issue.
- Update email with JWT token.
6.4.2
Added
- Added support for apps built using Mac Catalyst.
Fixed
- Fixed a couple of problems related to Swift Package Manager and the creation of release builds and simulator artifacts.
- Fixed a problem with the SDK’s Carthage integration.
- Fixed a problem that prevented the SDK from properly tracking inbox sessions when a mobile inbox is displayed in
popup
mode. - In-app delete events are now correctly associated with inbox session IDs.
- Fixed some problems in a script that generates XCFramework binaries.
6.4.1
Fixed
- Fix archiving issue. There was an issue when archiving for projects with deployment target set to iOS 10. This release fixes the issue.
6.4.0
Fixed
- Prevented in-app messages from executing any JavaScript code included in their
HTML templates.
Changed
- Removed support for iOS 9.
Added
-
Added an
allowedProtocols
field to theIterableConfig
class.Use this array to declare the specific URL protocols that the SDK can expect to see
on incoming links (and that it should therefore handle). Doing this will prevent the
SDK from opening links that use unexpected URL protocols.For example, this code allows the SDK to handle
http
andcustom
links:Swift
let config = IterableConfig() config.allowedProtocols = ["http", "custom"] IterableAPI.initialize(apiKey: "<YOUR_API_KEY>", launchOptions: launchOptions, config: config)
Objective-C
IterableConfig *config = [[IterableConfig alloc] init]; config allowedProtocols = @["http", "custom"]; [IterableAPI initializeWithApiKey:@"<YOUR_API_KEY>" launchOptions:launchOptions config:config]
Iterable's iOS SDK handles
https
,action
,itbl
, anditerable
links,
regardless of the contents of this array. However, you must explicitly declare any
other types of URL protocols you'd like the SDK to handle (otherwise, the SDK won't
open them in the web browser or as deep links).