Получение ошибки в классе FBSDKApplicationDelegate
Я получаю сообщение об ошибке при создании моего проекта xCode 7.3.1.
/Pods/FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.h:77:35: Нет типа или протокола с именем 'UIApplicationOpenURLOptionsKey'
Ошибка в функции:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;
Нужна ваша помощь! спасибо..
Ответы
Ответ 1
Последний FBSDKCoreKit не работает с Xcode 7.3. Вы должны использовать XCode 8 или более старые версии фреймворка Facebook.
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
был заменен в XCode 8 как
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;
Попробуйте вместо этого использовать SDK в facebook
https://origincache.facebook.com/developers/resources/?id=FacebookSDKs-iOS-4.14.0.zip
Для получения дополнительной информации об изменениях с iOS с 9 по 10, перейдите по этой ссылке https://developer.apple.com/library/content/releasenotes/General/iOS10APIDiffs/Objective-C/UIKit.html
Ответ 2
Вместо этого кода:
- (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;
}
Используйте этот код:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
}
Ответ 3
Попробуйте этот код:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options];
}