하나의 Facebook 앱 ID를 여러 iOS 앱에서, 예를 들어 앱의 무료 및 유료 버전 사이에서 사용할 수 있습니다.
앱의 .plist
파일에 URL 스키마 접미사 매개변수인 FacebookUrlSchemeSuffix
를 정의합니다.
참고: 접미사는 영문자에서만 사용할 수 있습니다.
SDK zip에는 SDK 리소스의 현지화된 문자열이 포함된 FacebookSDKStrings.bundle
이 포함됩니다. Apple의 문서에 설명된 대로 앱에 번들을 포함하고 Base Internationalization(기본 다국어화)을 활성화하세요.
iOS 다운로드 영역에서 이전 SDK 버전을 다운로드할 수 있습니다.
네이티브 공유 대화 상자는 Facebook iOS 앱의 일부이므로 시뮬레이터에서 실행할 수 없습니다. 실제 기기를 사용하여 네이티브 공유 대화 상자를 테스트하세요. Facebook에서는 시뮬레이터에서 네이티브 공유 대화 상자를 테스트할 수 있게 하는 방법을 모색 중입니다.
Facebook SDK 클래스를 사용하려는 각 파일의 상단에 올바른 import 문이 있는지 확인합니다. 예시:
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
Objective-C의 프레임워크를 사용할 때 기존 클래스를 확장하는 카테고리를 사용하는 클래스는 자동으로 읽어들이지 않습니다.
이러한 클래스에서 확장된 메서드를 호출하려고 하면 unrecognized selector sent to instance
오류가 표시됩니다. 예를 들어 .xib 파일에 보기를 그린 다음 인터페이스 빌더 UI에서 FBSDKLoginButton
으로 설정하여 인터페이스에 FBSDKLoginButton
을 추가한 경우 Xcode 인터페이스 빌더에서 사용된 클래스도 자동으로 읽어들이지 않습니다. 따라서 메서드를 호출하려고 하면 다시 unrecognized selector sent to instance
오류가 발생합니다. 이 문제를 해결하는 옵션은 두 가지가 있습니다.
다음을 호출하여 앱 델리게이트의 application:didFinishLaunchingWithOptions:
에 수동으로 클래스를 읽어들일 수 있습니다.
[FBSDKLoginButton class];
또는 -ObjC
링커 플래그를 추가할 수 있습니다. 이 플래그는 Objective-C 클래스 또는 카테고리를 정의하는 SDK의 모든 개체 파일을 읽어들이도록 링커에 지시합니다. 이 접근 방식을 사용하면 모든 클래스가 제대로 작동할 수 있지만 앱에 읽어들인 추가 개체 코드 때문에 실행 가능 파일의 크기가 늘어납니다.
-ObjC
플래그를 추가하려면 프로젝트 대상을 클릭하고 "Build Settings"(빌드 설정) 탭을 선택합니다. "Link"(링크)에서 "Other Linker Flags"(기타 링커 플래그)를 두 번 클릭하여 -ObjC
를 추가합니다.
일반적으로 .plist
에 구성 오류가 있을 수 있습니다. .plist
에 FacebookAppID
및 FacebookDisplayName
에 대한 행 및 fb{app-id}
에 대한 URL 유형 항목이 포함되어 있는지 확인하세요.
그래프 API 요청 시 예상치 않은 결과를 얻는 경우 요청 앞에 다음 코드를 추가하여 디버그 모드를 활성화합니다.
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
정보 레벨 메시지는 표시하지 않고 경고만 표시하려는 경우 FBSDKLoggingBehaviorGraphAPIDebugWarning
을 사용합니다.
이 로깅 동작을 사용하면 모든 그래프 API 요청에 debug
매개변수를 추가하고 발생한 모든 문제를 콘솔에 출력합니다.
여기에서 그래프 API 디버그 모드에 대한 자세히 내용을 읽어볼 수 있습니다.
사용자가 로그인 대화 상자에서 취소 버튼을 명시적으로 누르거나 사용자의 앱으로 다시 수동 앱 전환을 수행하는 경우(암시적 취소라고 부름) SDK에서 취소를 보고합니다. 앱 델리게이트 라이프사이클은 암시적 취소를 모방하므로, 이 라이프사이클의 일부로 로그인 플로를 시작하지 않아야 합니다(예: application:openURL:sourceApplication:annotation:
에서 로그인 시작). 부득이한 경우에만 앱 델리게이트 라이프사이클이 먼저 완료되도록 나중에 기본 대기열로 로그인 시작을 보냅니다.
공유 대화 상자에는 사용자 액션이 발생할 때 델리게이트의 sharer:didCompleteWithResults:
및 sharerDidCancel:
메서드가 표시됩니다.
sharer:didCompleteWithResults:
가 표시됩니다. 또한 사용자가 앱에 publish_actions
권한을 제공하는 경우 results
정보에 postId
키도 포함됩니다. 사용자가 Facebook 로그인을 사용하여 로그인하지 않은 경우 Cancel
을 클릭하면 이 메서드도 호출됩니다. X
버튼을 클릭하거나, Facebook 로그인을 사용하여 로그인한 다음 취소
를 클릭한 경우 sharerDidCancel:
가 표시됩니다.요청할 때 예상치 못한 결과를 얻으면 FBSDKGraphRequests
의 디버깅을 설정합니다. 요청 전에 이 코드를 추가하세요.
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
서버에서 직접 요청과 응답을 보고 문제를 디버깅할 수 있습니다.
로깅할 수 있는 기타 사항이 있는지 FBSDKSettings.h
에 정의된 기타 FBSDKLoggingBehavior*
상수를 확인합니다.