小工具知识网

当前位置: 首页 > 行业知识 > ios facebook 升级到最新版本 17.0.0

行业知识

ios facebook 升级到最新版本 17.0.0

2026-11-03 18:48:09 来源:互联网转载

项目由 Objective-C 写成,而 facebook 新 sdk 由 swift 写的。

需要用到混编。

官网地址:Facebook-ios-sdk

1. 导入库

按官网文档说的做就行。

填入地址:GitHub - facebook/facebook-ios-sdk: Used to integrate the Facebook Platform with your iOS & tvOS apps.。

添加目标要选,不然不能用。如果没有选,重新加也就可以。

添加成功后,这里可以看到。需要删除也在这里删除。

2.项目设置

建一个空的 .swift 文件,让项目支持 swift 混编。

facebook 用到的 framework 给加上:

AuthenticationServices.framework、SafariServieces.framework

解决引用错误:

3.加代码

引用头文件,AuthenticationServices,SafariServices 需要先加,不然 sdk 编译报错。FBSDKAccessToken.h, FBSDKAuthenticationToken.h 需要用 include,不然找不到。

#import #import #import #import #include #include 

初始化 sdk:

- (void)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    [[FBSDKApplicationDelegate sharedInstance] application:application                             didFinishLaunchingWithOptions:launchOptions];        [FBSDKApplicationDelegate.sharedInstance initializeSDK];    ...}+(NSString*) getPushKeyDeviceToken{    return [TxApnsProxy getDeviceToken];}- (BOOL)application:(UIApplication *)application            openURL:(NSURL *)url            options:(nonnull NSDictionary *)options{    ...    if ([[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options]) {      return YES;    }    return YES;}- (BOOL)application:(UIApplication *)application            openURL:(NSURL *)url  sourceApplication:(nullable NSString *)sourceApplication         annotation:(nonnull id)annotation{    ...    [[FBSDKApplicationDelegate sharedInstance] application:application    openURL:url                                         sourceApplication:sourceApplication annotation:annotation];    return YES;}

登录调用:

注意调用登录模式:

FBSDKLoginConfiguration 中 tracking 为 FBSDKLoginTrackingLimited 时,result.token 会是空的。但是 result.authenticationToken 会有值。

@property(nonnull,strong) FBSDKLoginManager* fbLogin;@synthesize fbLogin = _fbLogin;-(void) init{    // 初始化的时候加    self.fbLogin = [FBSDKLoginManager new];}-(void) login{    FBSDKLoginConfiguration *configuration = [[FBSDKLoginConfiguration alloc] initWithPermissions:@[@"public_profile", @"email"]   tracking:FBSDKLoginTrackingEnabled      nonce:@"123"];    [self.fbLogin logInFromViewController:[u8sdk (GetViewController)]                            configuration:configuration                               completion:^(FBSDKLoginManagerLoginResult * result, NSError *error) {      if (!error && !result.isCancelled) {          // Login successful-把 toekn 给服务器校验          NSDictionary *callbackDict = [NSDictionary dictionaryWithObjectsAndKeys:result.token.tokenString, @"token", nil];          [self (eventUserLogin):callbackDict];      } else {          NSDictionary *callbackDict = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"error", nil];          [self (eventUserLogin):callbackDict];      }    }];}

上一篇:宝塔面板启动过程关闭详解

下一篇:花木兰服务器怎么玩?