0

我有一个使用具有以下 gradle 配置的 AWS AppSync SDK 连接到云后端的 Android 应用程序。

implementation 'com.amazonaws:aws-android-sdk-appsync:2.7.+'

通过 Cognito 用户池控制对后端资源的访问。在没有启用 proguard 的情况下,用户身份验证和从后端获取数据可以正常工作。如果我启用 Proguard,我会收到与 AWS 开发工具包相关的各种警告。我设法生成启用 proguard 的签名 APK 的唯一方法是在 proguard-rules.pro 中抑制所有与 AWS 相关的警告,如下所示:

-dontwarn com.amazonaws.**

当我这样做时,生成的 APK 不会对用户进行身份验证,并且无法从后端检索数据。当我尝试调试 APK 时,我在 Android Studio 中收到以下错误:

Could not connect to remote process. Aborting debug session.

是否有更细粒度的 proguard 设置可以消除所有警告但不会破坏与后端的连接?

4

1 回答 1

1

以下 Proguard 配置对我有用:

-keepnames class com.amazonaws.**
-keepnames class com.amazon.**
# Request handlers defined in request.handlers
-keep class com.amazonaws.services.**.*Handler
# The following are referenced but aren't required to run
-dontwarn com.fasterxml.jackson.**
-dontwarn org.apache.commons.logging.**
# Android 6.0 release removes support for the Apache HTTP client
-dontwarn org.apache.http.**
# The SDK has several references of Apache HTTP client
-dontwarn com.amazonaws.http.**
-dontwarn com.amazonaws.metrics.**
-dontwarn com.amazonaws.mobile.**
-dontwarn com.amazonaws.mobileconnectors.**

所有警告都消失了,apk 连接到后端没有任何问题。

于 2019-05-29T16:41:36.620 回答