Facebook SDK v4 & Parse (Swift)
Я пытаюсь работать ParseFacebookUtilsv4 & FacebookSDK v4.. После многих испытаний мне удалось уменьшить количество ошибок до 1.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithLaunchOptions(launchOptions)
}
В этой части, которая точно скопирована из документации Parse для iOS - настройка Facebook (которая обновлена вчера для FBSDKv4), я получаю сообщение об ошибке:
'PFFacebookUtils.Type' does not have a member named 'initializeFacebookWithLaunchOptions'
Когда я проверяю полную документацию ParseFacebookUtilsv4, в которой говорится ~ Предупреждение: этот класс поддерживает официальный iOS iOS SDK v4.0+ и доступен только для iOS. ~ Я увидел, что нет класса с именем initializeFacebookWithLaunchOptions; вместо этого есть 'initializeFacebookWithApplicationLaunchOptions:'
Однако, когда я изменяю свою часть AppDelegate.swift / didFinishLaunchingWithOptions как:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
}
... Я получаю сообщение об ошибке "Отсутствует возвращение в функции, ожидающей возврата" Bool ". Затем я попытался добавить оба
return true /* AND */ return false // at the end of the function;
... Я получаю 9 сбоев, таких как: https://stackru.com/images/0a5cc5f4f93cd3269e78e0a1c20e05b531b124bc.png
Я полностью застрял и не знаю, как это исправить.
8 ответов
Основываясь на ваших журналах ошибок, я думаю, что либо у вас отсутствуют зависимости, либо у вас есть добавленные здесь зависимости, но вы не включили их в свой проект.
Я думаю, что ваш SDK Facebook не включен в цель сборки, так как отсутствующие символы имеют префиксы FB.
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; //works
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions]; //does not compile or work
Первая строка выше работала для меня. Похоже, они забыли обновить свою документацию.
Вы должны перейти к вашему PFFacebookUtils.h в заголовочном файле PFFacebookUtils.h и изменить:
(void) initializeFacebookWithApplicationLaunchOptions: (NSDictionary *) launchOptions;
Для того, чтобы:
(void) initializeFacebookWithApplicationLaunchOptions: (PF_NULLABLE NSDictionary *) launchOptions;
это будет работать! ссылки https://developers.facebook.com/bugs/1462780714012820/
Попробуйте удалить ParseFacebookUtils
(просто держи ParseFacebookUtilsV4
) это создает некоторые конфликты.
У меня была та же проблема, и мне пришлось реализовать два из приведенных выше предложений, чтобы мое приложение работало без проблем.
Сначала я добавил FBSDKLoginKit из FB SDK и импортировал его.(Спасибо, спасибо)
#import <FBSDKLoginKit/FBSDKLoginKit.h>
Затем я заменил:
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions];
с:
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
Надеюсь, мой ответ полезен.
Нашел мой ответ: мне пришлось импортировать FBSDKLoginKit в моем мостовом заголовке (который не был упомянут в недавно обновленном Parse Doc).
Так что мой bridging-header выглядит так:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
#import <Parse/Parse.h>
#import <Bolts/Bolts.h>
Если вы используете FB SDK v4 + Parse v1.7.5 SDK,
У меня есть только:
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
в моем соединительном заголовке. Мой файл AppDelegate.swift теперь содержит:
import Parse
import Bolts
import FBSDKCoreKit
import FBSDKShareKit
import FBSDKLoginKit
и я могу успешно запустить мое приложение.
У меня была такая же проблема с FB SDK v4 + Parse v1.7.5 SDK.
Наконец-то я решил эту проблему на своем проекте. Ошибка в проекте Parse blank. Не используйте Parse blank project.
https://www.parse.com/docs/downloads/ Это официальная страница загрузки, и существует два типа загрузки (v 1.7.5), то есть SDK или Blank Project, для запуска проекта.
Он работает только с файлами Parse SDK + ваш новый проект! Пожалуйста, импортируйте только SDK.