— 難読化・最適化に対応する

Usage

R8を用いて、アプリを難読化・最適化する場合に、SDKのメソッドが難読化・最適化され正常に動作しない場合があります。

アプリ内メッセージを使用する場合

inappmessaging 2.8.0以上を使用している場合

aarファイル内のProGuard設定を参照したビルドが可能な場合、特に対応は不要です。
Gradleでビルドする際にはデフォルトでこの挙動になっています。

inappmessaging 2.8.0未満を使用している場合

アプリのProGuard設定に下記設定を追記して下さい。

-keepclassmembers class io.karte.android.inappmessaging.** {
    @android.webkit.JavascriptInterface <methods>;
}

その他の機能のみ使用する場合

アプリ内メッセージ以外の機能では、特に難読化・最適化の影響を受けないことを確認しています。

R8ではなくProGuardを使用する場合

Android Gradle Pluginの3.5.0以降では、デフォルトで難読化ツールとして、R8を使用するようになっています。
アプリ側の何らかの事情でProGuardを使用しなくてはならない場合、SDK用の設定が必要です。

参考:設定例

-dontwarn io.karte.android.**
-keep class io.karte.android.core.library.Library
-keep class * extends io.karte.android.core.library.Library