10.6 Detalles Notamos que el usuario se lleva a Safari para iniciar session o registrarse en una count, lo que proporciona una experiencia de usuario deficiente

Mi aplicación fue rechazada por la siguiente razón.

10.6 Detalles Hemos observado que el usuario se lleva a Safari para iniciar session o registrarse en una count, lo que proporciona una experiencia de usuario deficiente.

Próximos pasos

Revisa tu aplicación para que los usuarios puedan iniciar session o registrar una count en la aplicación.

Recomendamos implementar la API de Safari View Controller para mostrar contenido web dentro de su aplicación. El Safari View Controller permite la visualización de una URL e inspección del certificate desde un browser incorporado en una aplicación para que los clientes puedan verificar la URL de la página web y el certificate SSL para confirmar que están ingresando sus cnetworkingenciales de inicio de session en una página legítima.

Recursos

Para get información adicional sobre la API de Safari View Controller, consulte la página web, Novedades de Safari .

Estoy usando Facebook y Google plus. ¿Se debe esto a Facebook o a Google Plus? Porque si no hay una aplicación de Facebook / Google plus instalada en el dispositivo de los usuarios, lanzará Safari / browser pnetworkingeterminado para la página de inicio de session de Facebook / Google +. Mi manzana binaria anterior fue aprobada por Apple y hasta ahora no he hecho ningún cambio en el flujo de signIn / register.

Estoy considerando implementar lo que me recomendaron pero no me puedo adelantar, Safari View Controller API para mostrar contenido web dentro de tu aplicación . ¿Cómo mostrar la página de inicio de session de Facebook / Google + con el controller Safari View? Estoy un poco atrapado aquí. Si alguien puede compartir un poco de idea con respecto a este tema será muy apreciado.

También me enfrenté con el mismo problema, en mi caso la aplicación fue rechazada debido a google + signin. Implementé un nuevo SDK, subí una nueva versión y funcionó con éxito. Buscar enlace aquí

Creo que esto resolverá tu problema. Debería permitir el signin de Google+ y Facebook. Simplemente agregue esto a su file AppDelegate.swift (o al que haya llamado su subclass UIApllicationDelegate). Déjame saber cómo funciona para ti.

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { // return FBSDKApplicationDelegate.shanetworkingInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) let urlString = url.absoluteString as NSString let substring = urlString.substringWithRange(NSRange(location: 0, length: 2)) print("FACEBOOKURL \(substring)") if substring == "fb" { return FBSDKApplicationDelegate.shanetworkingInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) }else { return GIDSignIn.shanetworkingInstance().handleURL(url, sourceApplication: sourceApplication, annotation: annotation) } } func application(application: UIApplication, openURL url: NSURL, options options: [String: AnyObject]) -> Bool { let urlString = url.absoluteString as NSString let substring = urlString.substringWithRange(NSRange(location: 0, length: 2)) print("FACEBOOKURL \(substring)") if substring == "fb" { return FBSDKApplicationDelegate.shanetworkingInstance().application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey]! as! String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) }else { return GIDSignIn.shanetworkingInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey]! as! String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) } } 

Creo que SFSafariViewController y su delegate serán la mejor solución para abrir una URL externa en la aplicación. El mismo problema me sucedió y utilicé el siguiente código (en el objective C) para resolver el problema y cargar la aplicación con éxito en la tienda de iTunes.

Usar marco:

 #import <SafariServices/SafariServices.h> 

y luego usa este código:

 -(void)openURLWithSafariController:(NSString*)strUrl { NSURL *URL = [NSURL URLWithString:strUrl]; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) { if ([SFSafariViewController class] != nil) { SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL]; sfvc.delegate = self; [self presentViewController:sfvc animated:YES completion:nil]; } else { if (![[UIApplication shanetworkingApplication] openURL:URL]) { NSLog(@"%@%@",@"Failed to open url:",[URL description]); } } } else { [[UIApplication shanetworkingApplication] openURL:[NSURL URLWithString:URL]]; } } #pragma Safari View Controller Delegate - (void)safariViewControllerDidFinish:(nonnull SFSafariViewController *)controller { [controller dismissViewControllerAnimated:YES completion:nil]; } 

y luego llame a este método:

 [self openURLWithSafariController:@"Pass some valid URL which you have tried to open in external browser"]; 

Verifique el código y avíseme si alguna consulta permanece en la implementación.

WebView

WebView visualiza el contenido web en una vista nativa.

Use WebView y sus páginas de "logging" y "restablecimiento de contraseña" se mostrarán dentro de su aplicación y no iniciará una vista externa de Safari.

Se ve bastante bien si su website admite browseres mobilees.