iOS 9 «fbauth2» manquant dans Info.plist

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

Une idée de ce que c'est? Je l'ai ajouté dans mon plist mais n'a pas fonctionné.

nikhila
la source

Réponses:

347

Vous pouvez continuer à utiliser des schémas d'URL lorsque vous créez votre application pour iOS 9 et que vous souhaitez appeler des schémas d'URL, vous devrez maintenant les déclarer dans vos applications Info.plist. Il existe une nouvelle clé, LSApplicationQueriesSchemes , et ici, vous devrez ajouter la liste des schémas sur lesquels vous souhaitez que canOpenURL.

Essayez comme ça.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbauth2</string>
</array>
Kaey
la source
1
Merci mon garçon. Je pensais que ce ne serait nécessaire que si je le construisais sur un appareil iOS9.
Felipe
xml version copier / coller s'il vous plaît: D?
Christopher Francisco
20
Pourquoi ces informations ne sont pas affichées sur le démarrage rapide pour iOS? developer.facebook.com/quickstarts/926602334080849/…
Paul Brewczynski
1
Merci. Comment avez-vous compris cela?
Hernan Arber
1
@PaulBrewczynski Je ne sais pas pourquoi il est pas dans le guide de démarrage rapide , mais je l' ai trouvé dans la documentation ici: developers.facebook.com/docs/ios/ios9
TMin
25

Si vous utilisez iOS9, il est important de mettre à jour votre fichier info.plist. Il vous suffit de faire 3 étapes 1. Accédez à info.plist 2. Ajoutez un champ nommé LSApplicationQueriesSchemes NSArray datatype. 3. Ajoutez un élément du type de données NSString, nommez-le fbauth2.

C'est tout. Nettoyez et courez. L'avertissement ne s'affichera plus.entrez la description de l'image ici

M Swapnil
la source
Je l'exécute sous Xcode 7.1 mais j'utilise le simulateur iPhone 6 Plus exécutant iOS 8.1. Cela ne devrait pas apparaître, n'est-ce pas?
Jerome Chan Yeow Heong
5

S'il vous plaît, ne l'ajoutez pas à vos CFBundleURLSchemes ... cela va en fait HIJACK toute tentative d'authentification Facebook par une application, provoquant une fenêtre contextuelle pour afficher la boîte de dialogue "X app veut ouvrir" ...

Vous ne voulez PAS faire cela.

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
utilisateur107172
la source
2

J'ai eu cela lors de l'exécution de mes tests Kiwi car notre cible de test n'avait pas accès au bundle principal. Donc , je devais ajouter une condition à 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
la source
Cela a fonctionné pour moi aussi. Je ne pouvais rien faire d'autre. Cela me semble étrange que nous devions modifier le code de Facebook, ne sera-t-il pas effacé lorsque FB met à jour ses cocopodes.
user2285278
1

Pour créer votre application pour iOS 9: (Pour Facebook Share)

  1. Ouvrez le Info.plistfichier, ajoutez un autre champ LSApplicationQueriesSchemes sous Information Property List et définissez son type de données Arrayou NSArray.
  2. Ajoutez 3 éléments pour LSApplicationQueriesSchemes et définissez leur type de données sur Stringou NSString.
  3. Attribuer fbauth2, fbshareextension, en fbapitant que valeur de l' élément.

Suivez cette photo :

entrez la description de l'image ici

roy
la source
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
la source
1
périmé. Le nouveau SDK nécessite moins
goodguys_activate
0

Vous pouvez essayer avec le code ci-dessous dans swift 5.0

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

Vous pouvez appeler en utilisant Bundle

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