Ios can';找不到FacebookSDK/FacebookSDK.h

Ios can';找不到FacebookSDK/FacebookSDK.h,ios,xcode,facebook,parse-platform,Ios,Xcode,Facebook,Parse Platform,我是一名android开发人员,对Xcode和objective-c不熟悉 我在我的应用程序中使用parse.com,我正在尝试添加使用face登录的功能,但是,ParseFacebookUtils框架的一个标题需要标题FacebookSDK,它不再包含在新的Facebook SDK中 进一步的调查显示我需要FBSession头,但我也找不到 有解决办法吗?我正在使用最新的Xcode,解析SDK和Facebook SDK 编辑: 编辑2: // // AppDelegate.m // Lis

我是一名android开发人员,对Xcode和objective-c不熟悉

我在我的应用程序中使用parse.com,我正在尝试添加使用face登录的功能,但是,
ParseFacebookUtils
框架的一个标题需要标题
FacebookSDK
,它不再包含在新的Facebook SDK中

进一步的调查显示我需要FBSession头,但我也找不到

有解决办法吗?我正在使用最新的Xcode,解析SDK和Facebook SDK

编辑:

编辑2:

//
//  AppDelegate.m
//  Listo
//
//  Created by Amit Baz on 5/12/15.
//  Copyright (c) 2015 Amit Baz. All rights reserved.
//

#import "AppDelegate.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
#import <Parse/Parse.h>

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    [FBSDKLoginButton class];

    [Parse setApplicationId:@""
                  clientKey:@""];

    [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];

    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];

    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    [FBSDKAppEvents activateApp];
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

@end
//
//AppDelegate.m
//利斯托
//
//由Amit Baz于2015年5月12日创建。
//版权所有(c)2015 Amit Baz。版权所有。
//
#导入“AppDelegate.h”
#进口
#进口
#进口
#进口
@接口AppDelegate()
@结束
@实现AppDelegate
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{
//应用程序启动后自定义的覆盖点。
[FBSDKLoginButton类];
[解析setApplicationId:@“”
clientKey:@“];
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
返回YES;
}
-(无效)应用程序将重新签名:(UIApplication*)应用程序{
//当应用程序即将从活动状态移动到非活动状态时发送。这可能发生在某些类型的临时中断(如来电或短信)或用户退出应用程序并开始转换到后台状态时。
//使用此方法暂停正在进行的任务、禁用计时器和降低OpenGL ES帧速率。游戏应使用此方法暂停游戏。
}
-(无效)应用程序标识符背景:(UIApplication*)应用程序{
//使用此方法释放共享资源、保存用户数据、使计时器无效,并存储足够的应用程序状态信息,以便在应用程序稍后终止时将其恢复到当前状态。
//如果您的应用程序支持后台执行,则会调用此方法而不是applicationWillTerminate:当用户退出时。
}
-(无效)应用程序将进入前台:(UIApplication*)应用程序{
//作为从后台转换到非活动状态的一部分调用;在这里,您可以撤消进入后台时所做的许多更改。
}
-(无效)应用IDBECOMEACTIVE:(UIApplication*)应用{
//重新启动应用程序处于非活动状态时暂停(或尚未启动)的所有任务。如果应用程序以前位于后台,可以选择刷新用户界面。
[FBSDKAppEvents activateApp];
}
-(无效)申请将终止:(UIApplication*)申请{
//当应用程序即将终止时调用。如果合适,请保存数据。另请参阅ApplicationIdentinterBackground:。
}
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url源应用程序:(NSString*)源应用程序注释:(id)注释{
return[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序
openURL:url
sourceApplication:sourceApplication
注释:注释];
}
@结束
从中删除FacebookSDK 构建阶段-->将二进制文件链接到库删除FacebookSDK.framework
再次添加FacebookSDK框架

看起来Facebook SDK在v4.0中有一个重大更新,将其拆分为多个框架。在更新parse以使用新SDK之前,您必须下载并使用Facebook SDK的v3.x或更低版本。

parse同时支持Facebook SDK的v4.x和v3.x。如果您使用的是FacebookSDK的v4.x,那么您需要执行以下操作,而不是导入
ParseFacebookUtils

#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
#导入

有关更多信息,请参阅。

不再有FacebookSDK.framework…新的sdk包含其他框架,在哪里可以找到更低的版本?谢谢您,先生!真管用!然而,当我试图通过Facebook连接帖子(编辑)中的消息时,控制台上没有写入日志,这意味着消息不“工作”,你能帮我吗?当你调用该方法时会发生什么?它会切换到Facebook应用程序还是Safari?你的plist中是否有fb{app_id}作为方案列出?它会切换到safari,因为我在模拟器中没有fb应用程序,我在URL类型中有fb{app_id}作为方案列出。在这种情况下,当你完成登录后,它会打开你的应用程序吗?如果是这样,您是否正在从您的AppDelegate调用
FBSDKApplicationDelegate
应用程序:openURL:sourceApplication:annotation:
方法?我有这个方法,但我没有给她打电话
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>