I have set up the URL scheme suffix on Facebook to have a "paid" and "free" version of my app. Now, I have submitted a paid and free version of my App on the App Store using 2 different bundle identifiers: com.mycompany.myapppaid
and com.mycompany.myappfree
. I have used the correct URL type for each app (fbMYFACEBOOKIDpaid, and fbMYFACEBOOKIDfree).
According to the Facebook app page, there is only a single spot for a single bundle identifier, how does Facebook differentiate between the two?
From a previous question I answered:
Mark your app as "Web".
Bundle ID is not necessary.
EDITED FOR NEW VERSION OF FACEBOOK IOS SDK:
- (id)initWithAppId:(NSString *)appId
urlSchemeSuffix:(NSString *)urlSchemeSuffix
andDelegate:(id<FBSessionDelegate>)delegate;
When you initialize the Facebook object, you need to initialize it with the appropriate "paid" or "free" suffix.
OLD ANSWER:
Call - (void)authorize:localAppId:
accordingly
The key is to mark your App Type as "Web" instead of "Native/Desktop" when you are filling out your app info on the Facebook create app pages. When you are Native/Desktop app it requires the Bundle ID and checks against that in the callback. If you are web app it ignores it.
You don't need to put anything in the web interface. When you want to authorize facebook, call [_facebook authorize:_permissions localAppId:@"free"]; or [_facebook authorize:_permissions localAppId:@"paid"];