首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当错误的用户登录时,ios应用程序会崩溃,并且不会显示日志。但在Android中,我们使用的是out crash。为什么?

当错误的用户登录时,ios应用程序会崩溃,并且不会显示日志。但在Android中,我们使用的是out crash。为什么?
EN

Stack Overflow用户
提问于 2020-06-22 14:41:46
回答 1查看 228关注 0票数 1

当错误的用户登录时,ios应用程序会崩溃,并且不会显示日志。但在Android中,我们使用的是out crash。为什么?

代码语言:javascript
运行
复制
  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

代码语言:javascript
运行
复制
Future<dynamic> login(
      {String username,
      String password,
      GlobalKey<ScaffoldState> globalKey}) async {
    return FlutterAwsAmplifyCognito.signIn(username, password)
        .then((SignInResult result) {
      debugPrint('------------------------${result}');
      switch (result.signInState) {
        case SignInState.SMS_MFA:
          // TODO: Handle this case.
          break;
        case SignInState.PASSWORD_VERIFIER:
          // TODO: Handle this case.
          break;
        case SignInState.CUSTOM_CHALLENGE:
          // TODO: Handle this case.
          break;
        case SignInState.DEVICE_SRP_AUTH:
          // TODO: Handle this case.
          break;
        case SignInState.DEVICE_PASSWORD_VERIFIER:
          // TODO: Handle this case.
          break;
        case SignInState.ADMIN_NO_SRP_AUTH:
          // TODO: Handle this case.
          break;
        case SignInState.NEW_PASSWORD_REQUIRED:
          // TODO: Handle this case.
          break;
        case SignInState.DONE:
          break;
        case SignInState.UNKNOWN:
          // TODO: Handle this case.
          break;
        case SignInState.ERROR:
          // TODO: Handle this case.
          break;
      }
      return result.codeDetails;
    }).catchError((error) {
      if (error.code == 'Error') {
        globalKey.currentState.showSnackBar(SnackBar(
          backgroundColor: Colors.red,
          content: Text(LocalizationsUtils(
                  Locale.fromSubtags(languageCode: AppPreferences().language))
              .errorIncorrectEmailPassword),
        ));
      }
    });
  }

github link https://github.com/jonsaw/amazon-cognito-identity-dart

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 20:38:40

也有同样的问题。只是代码中缺少了一个返回值。

代码语言:javascript
运行
复制
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运行应用程序,调试器会将您指向bug。

PS:在每个错误中都没有返回,所以应用程序可能也会在其他functionCalls上崩溃,例如,如果你试图在不是loggedIn的情况下获取令牌。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62508756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档