如何解决缩小apk时Amplify.Auth.fetchAuthSession() userPoolTokens为空
我正在使用 flutter 的放大库连接到我的 aws 后端。成功调用 Amplify.Auth.signIn()
后,我使用 Amplify.Auth.fetchAuthSession()
访问当前凭据。像这样:
final result = await Amplify.Auth.fetchAuthSession(
options: CognitoSessionOptions(getAWSCredentials: true),);
if (!result.isSignedIn) return const None();
if (result is CognitoAuthSession) {
return Some(result.userPoolTokens.idToken);
}
但是当我使用以下命令构建带有 flutter 的 apk 时,我的代码会中断。
flutter build apk
因为 result.userPoolTokens
突然为空而我得到一个 NoSuchMethodError
。在 null 上调用了 getter 'idToken'。但是,如果我禁用收缩并使用以下命令构建 apk,一切都会再次运行。
flutter build apk --no-shrink
所以我认为这与缩小有关,我更愿意缩小我的应用程序,因为缩小后的 apk 明显更小。
非常感谢您的帮助。
解决方法
这可能是由于对 R8 收缩器应用的规则不充分。
直到 2021 年 1 月 22 日刚刚发布的 1.6.10 版(请参阅 release notes)之前,Amplify Android 库才提供任何 consumer-rules.pro
。
Amplify Flutter 的最新版本是 0.0.2-dev.1,它使用 Android 库的 1.6.8 版本。我已提出 an issue on their GitHub repository,更新至 1.6.10。
同时,您可以尝试在顶级应用程序项目中应用这些规则。
-keep class com.amazon.** { *; }
-keep class com.amazonaws.** { *; }
-keep class com.amplifyframework.** { *; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。