Amazon cognito 当错误的用户登录时,ios应用程序正在崩溃,并且没有显示日志。但在安卓系统中,它的工作并没有崩溃。为什么?
当错误的用户登录时,ios应用程序正在崩溃,并且没有显示日志。但在安卓系统中,它的工作并没有崩溃。为什么?Amazon cognito 当错误的用户登录时,ios应用程序正在崩溃,并且没有显示日志。但在安卓系统中,它的工作并没有崩溃。为什么?,amazon-cognito,aws-amplify,flutter-dependencies,Amazon Cognito,Aws Amplify,Flutter Dependencies,当错误的用户登录时,ios应用程序正在崩溃,并且没有显示日志。但在安卓系统中,它的工作并没有崩溃。为什么? Thread 26: Fatal error: Unexpectedly found nil while unwrapping an Optional value Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Users/user/FlutterHome/flutter/.p
Thread 26: Fatal error: Unexpectedly found nil while unwrapping an Optional value
Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Users/user/FlutterHome/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_aws_amplify_cognito-1.0.0+7/ios/Classes/SwiftFlutterAwsAmplifyCognito.swift, line 275
未来登录(
{字符串用户名,
字符串密码,
GlobalKey GlobalKey})异步{
返回awsamplifycognito.signIn(用户名、密码)
.然后((SignInResult结果){
debugPrint('---------------------------${result}');
开关(result.signInState){
case SignInState.SMS_MFA:
//托多:处理这个案子。
打破
case SignInState.PASSWORD\u验证器:
//托多:处理这个案子。
打破
case SignInState.CUSTOM\u挑战:
//托多:处理这个案子。
打破
case SignInState.DEVICE\u SRP\u AUTH:
//托多:处理这个案子。
打破
case SignInState.DEVICE\u PASSWORD\u验证器:
//托多:处理这个案子。
打破
案例签名instate.ADMIN\u NO\u SRP\u AUTH:
//托多:处理这个案子。
打破
case SignInState.NEW\u所需密码:
//托多:处理这个案子。
打破
case SignInState.DONE:
打破
case SignInState.UNKNOWN:
//托多:处理这个案子。
打破
case SignInState.ERROR:
//托多:处理这个案子。
打破
}
返回result.code详细信息;
}).catchError((错误){
如果(error.code==“error”){
globalKey.currentState.showSnackBar(SnackBar(
背景颜色:Colors.red,
内容:文本(本地化)(
Locale.fromSubtags(语言代码:AppPreferences().language))
.errorIncorrectEmailPassword),
));
}
});
}
也有同样的问题。代码中只缺少一个返回
static func signIn(result: @escaping FlutterResult, username: String, password: String) {
AWSMobileClient.default().signIn(username: username, password: password){(signinResult, error) in
if (error != nil) {
DispatchQueue.main.async {
result(FlutterError(code: "Error", message: "Error signing in", details: error?.localizedDescription))
}
return // this return was missing!!!
}
仅供参考:如果您使用Xcode运行应用程序,调试器会将您指向错误
PS:每个错误中都缺少返回值,因此应用程序也可能在其他函数调用中崩溃,例如,如果您试图在不记录日志的情况下获取令牌。我知道解决方案是什么?只需从GitHub分叉或克隆它,并在本地进行修复,直到他们在master上修复它。
static func signIn(result: @escaping FlutterResult, username: String, password: String) {
AWSMobileClient.default().signIn(username: username, password: password){(signinResult, error) in
if (error != nil) {
DispatchQueue.main.async {
result(FlutterError(code: "Error", message: "Error signing in", details: error?.localizedDescription))
}
return // this return was missing!!!
}