2012-09-19 3 views
10

두 번째 업데이트 더 많은 파기를 한 후에 더 큰 문제가있는 것으로 보입니다.Facebook SDK 3.0 로그인하지 않은 상태에서 IOS 6 콜백이 호출되지 않음

openURL이 실행되지 않는 이유는 응용 프로그램이 포 그라운드로 되돌아 갔을 때 멈추는 것 같습니다.

홈 버튼을 클릭하고 (홈 화면으로 돌아 가기) 내 앱을 다시로드하면 (전체 재시작이 아니라 복원 만) 앱이 열리지 만 모든 것이 고정됩니다.

- (무효)의 applicationWillEnterForeground : (UIApplication *) 응용 프로그램

는 아무 것도 발생하지 그러나 후 앱이 돌아 오면 발생합니다. IOS 6.0 용 시뮬레이터를 사용하면 전혀 충돌이 없지만 앱은 아무 것도하지 않고 앉아 있습니다. 화면의 아무 것도 클릭하지 않습니다. 홈 화면을 클릭하면 홈 화면으로 돌아갈 수 있습니다.

openIURL이 (가) 실행되지 않는 이유는 Safari 또는 Facebook 앱에서 Facebook 로그인으로 돌아올 때 앱이 정지하기 때문입니다. 그것은 페이스 북 SDK와 아무 관련이 없습니다.

왜 이런 일이 발생합니까?

업데이트 openURL이 호출되지 않는 것과 관련되어있는 것으로 보입니다. 사파리 또는 페이스 북 앱에서 맞춤 URL을 실행하면 앱이 열립니다. 새로운 앱을 만들면 효과가 있습니다.

또 다른 관련 문제application open Url method not called after user authenticates the facebook

나는 페이스 북 SDK 3.0과 페이스 북의 로그인을 사용하는 응용 프로그램을 가지고있다.

는 IOS 5에서 흐름이 마련 작동하고 난에 기록 출력 참조 수행 아래

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [[FBSession activeSession] handleOpenURL:url]; 
} 

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

다시의 OpenURL 함수는 다음과 같다 내 응용 대리자

NSArray *permissions = [[NSArray alloc] initWithObjects: @"publish_stream",@"offline_access",@"email",nil]; 

[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:YES 
completionHandler:^(FBSession *session, 
        FBSessionState status, 
        NSError *error) { 
    if(session.isOpen){ 
     NSLog(@"IS LOGGED IN"); 
    }         
}]; 

[permissions release]; 

을 IOS 5 openURL 함수는 facebook을 통한 로그인 성공 후 호출됩니다.

IOS 6에서 openActiveSessionWithPermission (로그인)을 실행하면 openURL이 다시 호출되지 않습니다.

나는 페이스 북의 문서이 페이스 북에서 Shireesh입니다

FacebookAppID = (My Facebook App ID) 

URL types 
-> Item 0 
    -> URL Schemes 
     -> Item 0 = (My Facebook App ID) 
+0

에 따라 내 응용 프로그램을 업데이트했다. 하지만 내 응용 프로그램에서는 Appdelegate.m에 첫 번째 App Delegate 메서드가 없습니다. 오직 두번째. 또한 튜토리얼 블로그 (http://xcodenoobies.blogspot.com/2012/09/how-to-upload-photo-and-update-status.html)에서 샘플 프로젝트를 살펴볼 수도 있습니다. 또한, 두 앱 (Lite 및 Pro와 같은)이 있고 두 앱에 동일한 FacebookAppID를 사용하면 충돌이 발생할 수 있으므로 추가하고 싶습니다. 2 개 이상의 앱에 대해 동일한 fbappid를 사용하려는 경우 수행해야 할 추가 작업이 있습니다. (facebook devs wiki 참조) – GeneCode

+0

Facebook SDK 2.0과 동일한 문제가 있으므로 iOS 6 관련 정보가 의심됩니다. –

+0

By way openActiveSessionWithPermissions가 IOS 3.1에서 사용되지 않게되었습니다.하지만 관련이 있다고 생각하지 않습니다. 게시를 위해 withopenActiveSessionWithReadPermissions 및 openActiveSessionWithPublishPermissions를 읽을 수있는 권한을 부여해야합니다. –

답변

1

문제는 내 응용 프로그램에서 TWTweetComposeViewController를 사용하는 방식과 관련되어 있으므로 Facebook 북과 관련이 없습니다.

문제점은 내 ViewDidLoad에서 TWTweetComposeViewController를 초기화하고 필요할 때까지 사용하지 않는 것이 었습니다. 그러나 TWTweetComposeViewController가 표시되지 않지만 시작된 경우 백그라운드 모드에서 시작할 때 응용 프로그램이 정지됩니다.

해결 방법은 표시하려고 할 때만 TWTweetComposeViewController를 시작하는 것입니다. 무료 fbxxxxxxpaid

그들은 SDK 2.0에서 완벽하게 잘 작동하지만 3.2에서 내 응용 프로그램이 다시 호출되지 않은 등의 지급 및 I는 빈 캔버스와 붙어있어 :

0

에 따라 내 .plist 파일에 필요한 정보를 제공했다. 개발자 용 웹 사이트에서 자세한 내용을 볼 수 있도록 버그를 신고 할 수 있습니까? 가능하면 세부적인 단계별 절차를 제공하고 스크린 샷을 첨부하십시오. https://developers.facebook.com/bugs

1

앱이 사용자의 앱 plist에 설정된대로 백그라운드에서 실행되지 않도록 설정 되었기 때문일 수 있습니다. 나는이 같은 문제를 겪고있다. 앱이 백그라운드에서 실행중인 채로 남아 있으면 openURL이 반환되고 호출됩니다.그러나 앱이 백그라운드에서 실행되지 않으면 반환하고 대신 application : didFinishLaunchingWithOptions를 호출하고 openURL을 호출하지 않습니다. 시작 옵션에서 URL을 얻을 수 있습니다 :

NSURL *url = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey]; 

하지만 난 그것을 응용 프로그램과 동일한 효과를 가질 수 있도록이를 호출하는 방법을 알아 냈하지 않은 :의 OpenURL 페이스 북 인증에서 반환 할 때. 희망이 좀 도움이됩니다.

+0

이 동일한 문제가 발생했습니다. 어떻게 해결 했습니까? – Andres

관련 문제