调用Amplify.configure报PluginError解码失败,上传图片时应用崩溃
问题根因分析
1. 初始化配置解码失败报错
你在初始化逻辑中添加了AWSCognitoAuthPlugin插件,但你提供的amplifyconfiguration.json配置文件中没有Auth类别的对应配置项。Amplify初始化时会校验所有已添加插件的配置,找不到Auth插件对应配置就会抛出解码失败的错误。
2. 移除Auth插件后上报无Auth类别插件报错
Amplify的S3存储插件本身依赖Auth类别获取访问凭证,哪怕你设置了默认访问级别为guest(访客),也需要Auth类别为未认证用户生成访问凭证,移除Auth插件后存储模块无法获取凭证,就会抛出致命错误。
另外注意你的初始化代码中存储插件变量名存在拼写错误:let storafePlugin = AWSS3StoragePlugin() 里的storafe应为storage,如果实际运行代码也是这个拼写错误,也可能引发异常。
解决方案
- 补全Auth相关配置:如果你使用Amplify CLI管理资源,执行
amplify add auth,配置时选择允许未认证用户访问的选项,之后执行amplify push,新生成的配置文件会自动加入Auth类别的配置项。如果是手动管理AWS资源,你需要手动在amplifyconfiguration.json中添加对应Cognito身份池的Auth配置。 - 把之前移除的
try Amplify.add(plugin: AWSCognitoAuthPlugin())代码加回初始化逻辑中,此时配置文件已包含Auth插件对应配置,初始化不会再报解码错误。 - 修正代码中可能存在的变量拼写错误后,重新测试图片上传逻辑即可正常运行。
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

