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.

Другие вопросы по тегам