Skip to content

Commit bd12b38

Browse files
committed
add changelog
1 parent b2838e0 commit bd12b38

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

CHANGELOG.md

+66-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,73 @@ This project adheres to [Semantic Versioning](http://semver.org/).
1515
#### Fixed
1616
- nothing yet
1717

18-
## [3.4.9](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.4.9)
18+
## [3.4.10](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.4.10)
19+
This release includes support for encrypting some data at rest, and an option to
20+
store in-app messages in memory.
21+
22+
#### Encrypted data
23+
24+
In Android apps with `minSdkVersion` 23 or higher ([Android 6.0](https://developer.android.com/studio/releases/platforms#6.0))
25+
Iterable's Android SDK now encrypts the following fields when storing them at
26+
rest:
27+
28+
- `email` — The user's email address.
29+
- `userId` — The user's ID.
30+
- `authToken` — The JWT used to authenticate the user with Iterable's API.
31+
32+
(Note that Iterable's Android SDK does not store the last push payload at
33+
rest—before or after this update.)
34+
35+
For more information about this encryption in Android, examine the source code
36+
for Iterable's Android SDK: [`IterableKeychain`](https://github.com/Iterable/iterable-android-sdk/blob/master/iterableapi/src/main/java/com/iterable/iterableapi/IterableKeychain.kt).
37+
38+
#### Storing in-app messages in memory
39+
40+
This release also allows you to have your Android apps (regardless of `minSdkVersion`)
41+
store in-app messages in memory, rather than in an unencrypted local file.
42+
However, an unencrypted local file is still the default option.
43+
44+
To store in-app messages in memory, set the `setUseInMemoryStorageForInApps(true)`
45+
SDK configuration option (defaults to `false`):
46+
47+
_Java_
48+
49+
```java
50+
IterableConfig.Builder configBuilder = new IterableConfig.Builder()
51+
// ... other configuration options ...
52+
.setUseInMemoryStorageForInApps(true);
53+
IterableApi.initialize(context, "<YOUR_API_KEY>", config);
54+
```
55+
56+
_Kotlin_
57+
58+
```kotlin
59+
val configBuilder = IterableConfig.Builder()
60+
// ... other configuration options ...
61+
.setUseInMemoryStorageForInApps(true);
62+
IterableApi.initialize(context, "<YOUR_API_KEY>", configBuilder.build());
63+
```
64+
65+
When users upgrade to a version of your Android app that uses this version of
66+
the SDK (or higher), and you've set this configuration option to `true`, the
67+
local file used for in-app message storage (if it already exists) is deleted
68+
However, no data is lost.
1969

70+
#### Android upgrade instructions
71+
72+
If your app targets API level 23 or higher, this is a standard SDK upgrade, with
73+
no special instructions.
74+
75+
If your app targets an API level less than 23, you'll need to make the following
76+
changes to your project (which allow your app to build, even though it won't
77+
encrypt data):
78+
79+
1. In `AndroidManifest.xml`, add `<uses-sdk tools:overrideLibrary="androidx.security" />`
80+
2. In your app's `app/build.gradle`:
81+
- Add `multiDexEnabled true` to the `default` object, under `android`.
82+
- Add `implementation androidx.multidex:multidex:2.0.1` to the `dependencies`.
83+
84+
## [3.4.9](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.4.9)
2085
#### Added
2186
- Added new methods for `setEmail`, `setUserId` and `updateEmail` which accepts `authToken`, providing more ways to pass `authToken` to SDK
2287
- Added two interface methods - `onTokenRegistrationSuccessful` and `onTokenRegistrationFailed`. Override these methods to see if authToken was successfully received by the SDK.

0 commit comments

Comments
 (0)