1

I am still using Objective-C in my project, since it is a legacy one. I was using Parse before and now I am trying to add FB integration. I managed to make everything compile - these are what I have installed via CocoaPods.

Using Bolts (1.2.0)
Installing FBSDKCoreKit (4.3.0)
Installing FBSDKLoginKit (4.3.0)
Using Parse (1.7.5)
Installing ParseFacebookUtilsV4 (1.7.5)

Here is my code.

FirstViewController

-(void) viewDidAppear:(BOOL)animated
{
    // Do any additional setup after loading the view, typically from a nib.
    if (![PFUser currentUser] || // Check if user is cached
        ![PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) { // Check if user is linked to Facebook

        PFLogInViewController *logInController = [[PFLogInViewController alloc] init];
     logInController.fields = (PFLogInFieldsUsernameAndPassword
     | PFLogInFieldsFacebook
     | PFLogInFieldsDismissButton);
     [self presentViewController:logInController animated:YES completion:nil];
        [self presentViewController:loginViewController animated:YES completion:NULL];

    } else {
        NSLog(@"User is cached and showing content.");
    }
}

When the view shows up and I click on the log-in with Facebook, I have this error.

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'You must initialize PFFacebookUtils with a call to +initializeFacebookWithApplicationLaunchOptions'

If I add this on my AppDelegate, [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];

I get a compilation issue - no known class.

Based on this, I should add a temporary hack in the PFFacebookUtils, BUT the method initializeFacebookWithApplicationLaunchOptions does not exist in that file.

I also tried adding this in my AppDelegate.

[PFFacebookUtils initializeFacebook];

In that case, the error is :

+[PFFacebookUtils initializeFacebook]: unrecognized selector sent to class 0x10024f420
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[PFFacebookUtils initializeFacebook]: unrecognized selector sent to class 0x10024f420'

Any ideas/solutions?

Community
  • 1
  • 1
ghostrider
  • 5,131
  • 14
  • 72
  • 120
  • 1
    Have you set up your Facebook App ID in your .plist correctly? You can check the [Getting Started documentation](https://developers.facebook.com/docs/ios/getting-started). – amudi Jul 09 '15 at 02:08

2 Answers2

2

Make sure you're importing V4 of the framework

#import <ParseFacebookUtilsV4/PFFacebookUtils.h>

It's a subtle, but VERY important difference, and it will, for some reason, compile just importing

#import <ParseFacebookUtils/PFFacebookUtils.h>

especially if you just switched from regular FB Utils.

Chase Holland
  • 2,178
  • 19
  • 23
0

I had the same problem, so I tried to delete the Parse library and use Cocoapods to install the library again, then it works! I didn't change any code, and just add the following line to my Podfile:

pod 'Parse', '~> 1.7'
pod 'ParseFacebookUtilsV4', '~> 1.7'

I don't know why, but it works.

Steven
  • 1