web-dev-qa-db-fra.com

Obtention d'une erreur dans la classe FBSDKApplicationDelegate

Je reçois une erreur lorsque je construis mon projet xCode 7.3.1.

/Pods/FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.h:77:35: Aucun type ou protocole nommé "UIApplicationOpenURLOptionsKey"

Le problème fonctionne comme ceci:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;

Besoin de votre aide! THX..

10
anilst

La dernière version de FBSDKCoreKit ne fonctionne pas avec Xcode 7.3. Vous devez utiliser la version XCode 8 ou antérieure du framework Facebook.

 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

a été remplacé dans XCode 8 en tant que

 - (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;

Essayez plutôt ce SDK facebook 

https://origincache.facebook.com/developers/resources/?id=FacebookSDKs-iOS-4.14.0.Zip

Pour plus d'informations sur les modifications apportées par iOS 9 à 10, cliquez sur ce lien https://developer.Apple.com/library/content/releasenotes/General/iOS10APIDiffs/Objective-C/UIKit.html

18
shinoys222

Essayez ce code:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

    return [[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options];

}
0
user2823308

Au lieu de ce code:

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
    openURL:url
    sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
    annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
  ];
  // Add any custom logic here.
  return handled;
}

Utilisez ce code:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                        openURL:url
                                              sourceApplication:sourceApplication
                                                     annotation:annotation
          ];
}
0
Abhishek Kumar