2013-03-13 12 views
5

Moja aplikacja na iOS korzysta z Facebooka do logowania, jednak moja grupa deweloperów zdecydowała się ostatnio skonsolidować wszystkie nasze aplikacje w jedną uniwersalną aplikację na Facebooku z powszechnym ID aplikacji. Poszedłem więc do mojego projektu i próbowałem zmienić mój FacebookAppID i Typy URL w odpowiedni identyfikator aplikacji, ale kiedy uruchomię aplikację i kliknę przycisk logowania, przekierowuję mnie, aby zalogować się do mojej starej aplikacji na Facebooku. Absolutnie nie mam pojęcia, dlaczego tak się dzieje, ale tutaj jest to, co mam w AppDelegate pliku:Facebook loguje się do niewłaściwej aplikacji na iOS

/* 
Callback for session changes 
*/ 
- (void)sessionStateChanged:(FBSession *)session 
        state:(FBSessionState) state 
        error:(NSError *)error 
{ 
switch (state) { 
    case FBSessionStateOpen: 
     if (!error) { 
      // We have a valid session 
      NSLog(@"User session found"); 
     } 
     break; 
    case FBSessionStateClosed: 
    case FBSessionStateClosedLoginFailed: 
     [FBSession.activeSession closeAndClearTokenInformation]; 
     break; 
    default: 
     break; 
} 

[[NSNotificationCenter defaultCenter] 
postNotificationName:FBSessionStateChangedNotification 
object:session]; 

if (error) { 
    UIAlertView *alertView = [[UIAlertView alloc] 
           initWithTitle:@"Error" 
           message:error.localizedDescription 
           delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil]; 
    [alertView show]; 
    } 
} 

/* 
* Opens a Facebook session and optionally shows the login UX. 
*/ 
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
         @"email", 
         @"user_games_activity", 
         @"user_location", 
         @"user_likes", 
         @"user_birthday", 
         nil]; 
return [FBSession openActiveSessionWithReadPermissions:permissions 
              allowLoginUI:allowLoginUI 
            completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             [self sessionStateChanged:session 
                  state:state 
                  error:error]; 
            }]; 
} 

/* 
* If we have a valid session at the time of openURL call, we handle 
* Facebook transitions by passing the url argument to handleOpenURL 
*/ 
- (BOOL)application:(UIApplication *)application 
     openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
    annotation:(id)annotation { 
    // attempt to extract a token from the url 
    return [FBSession.activeSession handleOpenURL:url]; 
} 
/* 
*Logout 
* 
*/ 
- (void) closeSession { 
    [FBSession.activeSession closeAndClearTokenInformation]; 
} 

Odpowiedz

6

Prawdopodobnie masz dwie aplikacje na urządzenia, które mają ten sam schemat Facebook URL w Info.plist aplikacji. Można:

  • usunąć starą aplikację lub
  • Ponownie starą aplikację ale usunąć schemat URL Facebook z pliku Info.plist wcześniej

może mieć więcej niż jeden schemat URL . Jeśli tak, powinieneś poszukać takiego, który wygląda jak fbxxxxxxxxxxx, który jest wyświetlany na twojej stronie aplikacji pod adresem http://developers.facebook.com/

+0

Okazało się, że miałem więcej niż jeden schemat URL, naprawiłem problem! Dzięki wielkie. –

+0

Znalazłem dwie aplikacje, które mam ten sam schemat URL na Facebooku i zmieniłem schemat adresu URL, ale nic się nie stało, wciąż otwieram kolejną aplikację. –

Powiązane problemy