title: Flutter-Firebase phone Auth always returns Token mismatch on iOS
body: <p>I'm trying to use phone Authentication and it's working as expected on Android, but on iOS I always get Token mismatch and don't receive a code.</p>
  
  <p>other Firebase services like cloud firestore and email Auth are working fine on iOS.</p>
  
  <p>I made sure of the following:</p>
  
  <p>-APN key is added in Firebase</p>
  
  <p>-Google Services file is updated</p>
  
  <p>-Background Modes and Push Notification capabilities are on</p>
  
  <p>the error message is from PhoneVerificationFailed</p>
  
  <pre><code>Future&lt;void&gt; _verifyPhoneNumber() async {
  
      setState(() {
        _message = '';
      });
  
      final PhoneVerificationCompleted verificationCompleted =
          (AuthCredential phoneAuthCredential) async {
  
        await _auth.signInWithCredential(phoneAuthCredential);
  
        setState(() {
          _message = 'Received phone auth credential: $phoneAuthCredential';
  
        });
  
      };
  
      final PhoneVerificationFailed verificationFailed =
          (AuthException authException) {
        setState(() {
          _message = '********************\n\n'
              'Phone number verification failed. Code: ${authException.code}.'
              '\n Message: ${authException.message}'
              '\n\n********************';
        });
      };
  
      final PhoneCodeSent codeSent =
          (String verificationId, [int forceResendingToken]) async {
        _verificationId = verificationId;
  
        setState(() {
          _message = 'waiting for code';
          //waitingCode = true;
        });
      };
  
      final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
          (String verificationId) {
        _verificationId = verificationId;
      };
  
      try {
        await _auth.verifyPhoneNumber(
            phoneNumber: number,
            timeout: const Duration(seconds: 30),
            verificationCompleted: verificationCompleted,
            verificationFailed: verificationFailed,
            codeSent: codeSent,
            codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
      } catch (e) {
        print('Error is $e');
      }
    }
  </code></pre>
  
  <p>and I'm getting these messages from log </p>
  
  <pre><code>Userinfo {
      "com.google.firebase.auth" =     {
          warning = "This fake notification should be forwarded to Firebase Auth.";
      };
  }
  UserDate : {
      "com.google.firebase.auth" =     {
          warning = "This fake notification should be forwarded to Firebase Auth.";
      };
  }
  UserDate Json : {
    "com.google.firebase.auth" : {
      "warning" : "This fake notification should be forwarded to Firebase Auth."
    }
  }
  flutter: 
  
  
  TRUE
  flutter: Call Back {
    "com.google.firebase.auth" : {
      "warning" : "This fake notification should be forwarded to Firebase Auth."
    }
  }
  </code></pre>