title: A global key was used multiple times inside one widgets child list
body: <p>After closing the app, when I try to open it again, I'm getting the following error but it's only on iOS platform, Android works well.</p>
  
  <p><a href="https://i.stack.imgur.com/hj8Za.png" rel="noreferrer"><img src="https://i.stack.imgur.com/hj8Za.png" alt="enter image description here"></a></p>
  
  <p>I have looked around and there are several SO questions and issues about this problem but I couldn't solve it. I'm also using <code>bloc</code> pattern for managing state.</p>
  
  <p>I have <code>GlobalKey&lt;FormState&gt;</code> in my <code>AuthenticateForm</code>.</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:low_code/blocs/authentication/authentication_bloc.dart';
  import 'package:low_code/blocs/authentication/authentication_event.dart';
  import 'package:low_code/helpers/app_localization/app_localizations.dart';
  
  class AuthenticateForm extends StatefulWidget {
    @override
    _AuthenticateFormState createState() =&gt; _AuthenticateFormState();
  }
  
  class _AuthenticateFormState extends State&lt;AuthenticateForm&gt; {
    GlobalKey&lt;FormState&gt; _formKey = GlobalKey&lt;FormState&gt;();
  
    String username;
  
    String password;
  
    @override
    Widget build(BuildContext context) {
      AppLocalizations appLocalizations = AppLocalizations.of(context);
      return Form(
        key: _formKey,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: &lt;Widget&gt;[
            TextFormField(
              onSaved: (String value) =&gt; username = value,
              initialValue: 'dms-bpm',
              decoration: InputDecoration(
                  labelText: appLocalizations.translate('username')),
              // ignore: missing_return
              validator: (String value) {
                if (value.isEmpty) {
                  return 'Please enter your ${appLocalizations.translate('username')}';
                }
              },
            ),
            TextFormField(
              onSaved: (String value) =&gt; password = value,
              obscureText: true,
              decoration: InputDecoration(
                  labelText: appLocalizations.translate('password')),
              initialValue: 'dms-bpm',
              // ignore: missing_return
              validator: (String value) {
                if (value.isEmpty) {
                  return 'Please enter your ${appLocalizations.translate('password')}';
                }
              },
            ),
            RaisedButton(
              shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.all(Radius.circular(15))),
              child: Text(appLocalizations.translate('login')),
              onPressed: () {
                _formKey.currentState.save();
                if (_formKey.currentState.validate()) {
                  BlocProvider.of&lt;AuthenticationBloc&gt;(context)
                    ..dispatch(
                        Authenticate(username: username, password: password));
                }
              },
            )
          ],
        ),
      );
    }
  }
  
  </code></pre>
  
  <blockquote>
    <p>Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17763.615], locale en-GB)</p>
  </blockquote>