Skip to content

Commit edd13e8

Browse files
authored
Merge pull request #479 from Iterable/MOB-4206-version-3.4.10
[MOB-4206] version 3.4.10
2 parents 27e7df4 + bd12b38 commit edd13e8

File tree

4 files changed

+71
-6
lines changed

4 files changed

+71
-6
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.

iterableapi-ui/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ ext {
4848
siteUrl = 'https://github.com/Iterable/iterable-android-sdk'
4949
gitUrl = 'https://github.com/Iterable/iterable-android-sdk.git'
5050

51-
libraryVersion = '3.4.9'
51+
libraryVersion = '3.4.10'
5252

5353
developerId = 'davidtruong'
5454
developerName = 'David Truong'

iterableapi/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ android {
1111
minSdkVersion 16
1212
targetSdkVersion 27
1313

14-
buildConfigField "String", "ITERABLE_SDK_VERSION", "\"3.4.9\""
14+
buildConfigField "String", "ITERABLE_SDK_VERSION", "\"3.4.10\""
1515

1616
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1717
}
@@ -75,7 +75,7 @@ ext {
7575
siteUrl = 'https://github.com/Iterable/iterable-android-sdk'
7676
gitUrl = 'https://github.com/Iterable/iterable-android-sdk.git'
7777

78-
libraryVersion = '3.4.9'
78+
libraryVersion = '3.4.10'
7979

8080
developerId = 'davidtruong'
8181
developerName = 'David Truong'

sample-apps/inbox-customization/app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ dependencies {
3333
implementation 'androidx.navigation:navigation-ui-ktx:2.1.0'
3434
implementation 'com.google.android.material:material:1.1.0'
3535

36-
implementation 'com.iterable:iterableapi:3.4.9'
37-
implementation 'com.iterable:iterableapi-ui:3.4.9'
36+
implementation 'com.iterable:iterableapi:3.4.10'
37+
implementation 'com.iterable:iterableapi-ui:3.4.10'
3838
implementation 'com.squareup.okhttp3:mockwebserver:4.2.2'
3939

4040
testImplementation 'junit:junit:4.12'

0 commit comments

Comments
 (0)