簡體   English   中英

在Android上使用Cognito用戶池身份驗證更正AWS AppSync的Proguard規則

[英]Correct Proguard Rules for AWS AppSync with Cognito User Pool Authentication on Android

我有一個使用AWS AppSync SDK的Android應用程序,其中包含以下gradle配置以連接到雲后端。

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

通過Cognito用戶池控制對后端資源的訪問。 用戶身份驗證和從后端獲取數據工作正常,無需啟用proguard。 如果我啟用Proguard,我會收到與AWS SDK相關的各種警告。 我設法生成已啟用proguard的簽名APK的唯一方法是通過在proguard-rules.pro中抑制所有與AWS相關的警告,如下所示:

-dontwarn com.amazonaws.**

當我這樣做時,生成的APK不會對用戶進行身份驗證,也無法從后端檢索數據。 當我嘗試調試APK時,我在Android Studio中收到以下錯誤:

Could not connect to remote process. Aborting debug session.

是否有更細粒度的proguard設置,擺脫所有的警告,但不會搞砸與后端的連接?

以下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連接到后端沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM