Falta iOS 9 "fbauth2" en Info.plist

147
FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0

¿Alguna idea de qué es esto? Lo he agregado en mi lista pero no funcionó.

nikhila
fuente

Respuestas:

347

Puede seguir utilizando esquemas de URL cuando cree su aplicación para iOS 9 y desee llamar a esquemas de URL, ahora deberá declararlos en la lista de aplicaciones Info.plist. Hay una nueva clave, LSApplicationQueriesSchemes , y aquí deberá agregar la lista de esquemas en los que desea que canOpenURL esté activado.

Intenta así.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbauth2</string>
</array>
Kaey
fuente
1
Gracias muchacho. Pensé que solo sería necesario si lo estaba construyendo para un dispositivo iOS9.
Felipe
xml copiar / pegar versión por favor: D?
Christopher Francisco
20
¿Por qué esta información no se muestra en el inicio rápido para iOS? developers.facebook.com/quickstarts/926602334080849/…
Paul Brewczynski
1
Gracias. ¿Cómo resolviste esto?
Hernan Arber
1
@PaulBrewczynski No sé por qué no está en la guía de inicio rápido, pero la encontré en los documentos aquí: developers.facebook.com/docs/ios/ios9
TMin
25

Si está utilizando iOS9, esto es importante para actualizar su archivo info.plist. Solo necesita realizar 3 pasos 1. Vaya a info.plist 2. Agregue un campo llamado LSApplicationQueriesSchemes NSArray datatype . 3. Agregue un elemento de tipo de datos NSString y asígnele el nombre fbauth2.

Eso es. Solo limpia y corre. advertencia no volverá a aparecer.ingrese la descripción de la imagen aquí

M Swapnil
fuente
Estoy ejecutando esto bajo Xcode 7.1 pero usando el simulador de iPhone 6 Plus con iOS 8.1. Esto no debería aparecer, ¿verdad?
Jerome Chan Yeow Heong
5

Simplemente no agregue esto a sus CFBundleURLSchemes ... eso en realidad HIJACK cualquier intento de aplicación en la autenticación de Facebook, causando que aparezca una ventana emergente que muestra el diálogo "X aplicación quiere abrir" ...

NO quieres estar haciendo eso.

cf:

https://developers.facebook.com/docs/applinks/ios
https://www.fireeye.com/blog/threat-research/2015/04/url_masques_on_apps.html
https://www.reddit.com/r/workflow/comments/2tlx29/get_url_scheme_of_any_app
usuario107172
fuente
2

Obtuve esto cuando ejecuté mis pruebas de Kiwi ya que nuestro objetivo de prueba no tenía acceso al paquete principal. Así que tuve que agregar una condición isRegisteredCanOpenURLSchemeenFBSDKInternalUtility.m

+ (BOOL)isRegisteredCanOpenURLScheme:(NSString *)urlScheme
{
  static dispatch_once_t fetchBundleOnce;
  static NSArray *schemes = nil;

  dispatch_once(&fetchBundleOnce, ^{
    schemes = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"LSApplicationQueriesSchemes"];
    if (!schemes) { // This is a work around for our Kiwi tests as the Specs target doesn't have access to main bundle
      NSBundle *bundle = [NSBundle bundleForClass:[self class]];
      NSString *path = [bundle pathForResource:@"Info" ofType:@"plist"];
      NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
      schemes = [dictionary valueForKey:@"LSApplicationQueriesSchemes"];
    }
  });

  return [schemes containsObject:urlScheme];
}
MdaG
fuente
Esto funcionó para mí también. No pude conseguir nada más para trabajar. Esto me parece extraño que tengamos que editar el código de Facebook, no se borrará cuando FB actualice sus cocopods.
user2285278
1

Para crear su aplicación para iOS 9: (Para compartir en Facebook)

  1. Abra el Info.plistarchivo, agregue otro campo LSApplicationQueriesSchemes en la Lista de propiedades de información y configure su tipo de datos Arrayo NSArray.
  2. Agregue 3 elementos para LSApplicationQueriesSchemes y establezca su tipo de datos en Stringo NSString.
  3. Asignar fbauth2, fbshareextension, fbapicomo valor del artículo.

Sigue esta foto :

ingrese la descripción de la imagen aquí

Roy
fuente
0
Write the below code in your info.plist under the **LSApplicationQueriesScheme**

<string>fbapi</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbauth</string>
        <string>fbauth2</string>
        <string>fb-messenger-api20140430</string>
        <string>fb-messenger-platform-20150128</string>
        <string>fb-messenger-platform-20150218</string>
        <string>fb-messenger-platform-20150305</string>
Deepak Saki
fuente
1
fuera de plazo. El SDK más nuevo requiere menos
goodguys_activate
0

Puedes probar con el siguiente código en swift 5.0

extension Bundle {
   static let externalURLSchemes: [String] = {
      guard let urlTypes = main.infoDictionary?["LSApplicationQueriesSchemes"] 
       as? [String] else {
        return []
      }
      return urlTypes
   }()
}

Puedes llamar usando Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Sivabalaa Jothibose
fuente