2016-09-24 128 views
0

我正在使用Xcode 8和objective-c。我遵循Facebook的指引,但登录按钮后,我的登录按钮不会切换到注销按钮后,我的应用程序的管理员用户。我对应用程序开发有点新,所以我不确定在Facebook SDK中看什么。我在网上阅读了一些帖子,他们似乎指出了这些准则(即通过严格遵循准则解决了这些问题)。我应该提到,在再次登录后,我会收到一个“您已经从Facebook授权{{app}}”的消息,并显示“取消”和“确定”按钮。Facebook登录按钮不会更改为iOS中的注销按钮(Xcode 8)

这里的视图控制器的实现文件:

#import "LoginViewController.h" 
#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h> 

@interface LoginViewController() 
    @property (weak, nonatomic) IBOutlet FBSDKLoginButton *loginButton; 
@end 

@implementation LoginViewController 

-(void)loginButtonDidLogOut:(FBSDKLoginButton *)loginButton { 

} 

- (void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error 
    { 

    } 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends"]; 
    FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; 
    loginButton.center = self.view.center; 
    [self.view addSubview:loginButton]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

和一个控制器查看标题:

#import <UIKit/UIKit.h> 
#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h> 

@interface LoginViewController : UIViewController <FBSDKLoginButtonDelegate> 

而且AppDelegate中的执行部分,Facebook的指示改变/添加:

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    [FBSDKAppEvents activateApp]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [[FBSDKApplicationDelegate sharedInstance] application:application 
          didFinishLaunchingWithOptions:launchOptions]; 
    return YES; 
} 

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 
    return [[FBSDKApplicationDelegate sharedInstance] application:application 
                  openURL:url 
               sourceApplication:sourceApplication 
                 annotation:annotation]; 
} 

我基本上从Facebook的步骤复制/粘贴,所以我在下一步该做什么。感谢您的帮助

回答

0

做了一些更多的挖掘,发现了这个解决方案,为我工作:

FBSDK Login Error Code: 308 in Objective-C

注意我用的解决方案是不是最高的那个链接投票的答案。这里是为了方便细节:

启用项目钥匙扣共享(在项目级设置)

Fix Keychain permission issue