@@ -219,6 +219,40 @@ + (FlutterError *)convertToFlutterError:(NSError *)error {
219219 return [FlutterError errorWithCode: code message: message details: additionalData];
220220}
221221
222+ + (FlutterError *)convertAppleAuthorizationErrorToFlutterError : (NSError *)error {
223+ NSString *message = @" An unknown error has occurred." ;
224+ if (error.localizedDescription .length > 0 ) {
225+ message = error.localizedDescription ;
226+ }
227+
228+ NSMutableDictionary *additionalData = [NSMutableDictionary dictionary ];
229+ NSString *nativeErrorDomain = error.domain ?: @" unknown" ;
230+ NSNumber *nativeErrorCode = @((long )error.code );
231+
232+ additionalData[@" nativeErrorDomain" ] = nativeErrorDomain;
233+ additionalData[@" nativeErrorCode" ] = nativeErrorCode;
234+
235+ NSError *underlyingError = error.userInfo [NSUnderlyingErrorKey ];
236+ NSString *underlyingMessage = @" " ;
237+ if (underlyingError != nil ) {
238+ NSString *underlyingErrorDomain = underlyingError.domain ?: @" unknown" ;
239+ NSNumber *underlyingErrorCode = @((long )underlyingError.code );
240+
241+ additionalData[@" underlyingNativeErrorDomain" ] = underlyingErrorDomain;
242+ additionalData[@" underlyingNativeErrorCode" ] = underlyingErrorCode;
243+
244+ underlyingMessage =
245+ [NSString stringWithFormat: @" , Underlying Domain=%@ Code=%ld " , underlyingErrorDomain,
246+ (long )underlyingError.code];
247+ }
248+
249+ NSString *detailMessage =
250+ [NSString stringWithFormat: @" %@ (Domain=%@ Code=%ld %@ )" , message, nativeErrorDomain,
251+ (long )error.code, underlyingMessage];
252+
253+ return [FlutterError errorWithCode: @" unknown" message: detailMessage details: additionalData];
254+ }
255+
222256+ (id )getNSDictionaryFromAuthCredential : (FIRAuthCredential *)authCredential {
223257 if (authCredential == nil ) {
224258 return [NSNull null ];
@@ -532,7 +566,7 @@ - (void)authorizationController:(ASAuthorizationController *)controller
532566
533567 case ASAuthorizationErrorUnknown:
534568 default :
535- completion (nil , [FLTFirebaseAuthPlugin convertToFlutterError : error]);
569+ completion (nil , [FLTFirebaseAuthPlugin convertAppleAuthorizationErrorToFlutterError : error]);
536570 break ;
537571 }
538572}
0 commit comments