您可以在數個 iOS 版應用程式間(例如,您的免費版和付費版應用程式),共用單一 Facebook 應用程式編號。
定義網址配置尾碼參數「FacebookUrlSchemeSuffix」(在應用程式的「.plist」檔案中)。
注意:尾碼只能包含字母字元。
SDK zip 檔案含有一組「FacebookSDKStrings.bundle」,內有 SDK 資源的本地化字串,將此套件組合納入您的應用程式,並依照 Apple 文件的說明(https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html#//apple_ref/doc/uid/10000171i-CH3-SW4),[啟用 Base Internationalization]。
您可以前往 [iOS 下載區域](/docs/android/downloads)下載舊版 SDK。
由於原生「分享」對話方塊屬於 Facebook iOS 應用程式的一部分,因此無法在模擬器上執行。請使用實體裝置測試原生「分享」對話方塊。我們正嘗試讓您在模擬器測試原生「分享」對話方塊。
請務必在每個檔案的上方(即您嘗試使用 Facebook SDK 類別之處),新增適當的 import 陳述式。例如:
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
在 Objective-C 中使用架構時,使用類型延伸現有類別的類別無法自動載入。
嘗試呼叫延伸到這些類別的方法時,您會遇到「unrecognized selector sent to instance」錯誤。從 Xcode 介面產生器使用的類別亦無法自動載入,例如,當您要新增「FBSDKLoginButton」到介面時,是利用在 .xib 檔案中繪製檢視效果,然後再從介面產生器 UI 設定為「FBSDKLoginButton」的方式,便會遇到此情況。再次提醒,當您嘗試在這些類別呼叫方法時,將會遇到「unrecognized selector sent to instance」錯誤。您有兩個方法可以解決此問題。
在應用程式委派的「application:didFinishLaunchingWithOptions」中手動載入類別,方法是呼叫:
[FBSDKLoginButton class];
或者,新增「-ObjC」連結器旗幟。此旗幟會指示連結器載入 SDK 中的每個物件檔案,此處的 SDK 是用於定義 Objective-C 類別或類型。此方式將讓所有類別立即可用,但也會增加執行檔的大小(因為應用程式會載入額外的物件程式碼)。
若要新增「-ObjC」旗幟,請點擊專案目標,然後選擇「建立設定」頁籤。在「連結」下方,雙擊「其他連結器旗幟」新增「-ObjC」。
「FBSDKRequestConnection」使用「NSURLConnection」,這需要有效的 [RunLoop](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/Reference/Reference.html)。如果您是在主執行緒之外使用,則必須自行管理。
您也可以在「FBSDKRequestConnection」中設定「delegateQueue」屬性。
「.plist」檔案經常發生配置錯誤。請確定「.plist」含有「FacebookAppID」和「FacebookDisplayName」資料列,以及「fb{app-id}」的網址類型項目。
如果您提出 Graph API 要求時得到未預期的結果,請在所有要求之前加入以下程式碼,以啟用偵錯模式:
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
如果您要抑制資訊層級的訊息,並僅保留警告訊息,請使用「FBSDKLoggingBehaviorGraphAPIDebugWarning」。
若啟用此記錄行為,會將「debug」參數新增到所有 Graph API 要求,並在主控台中輸出所有問題。
您可以在 [這裡](/docs/graph-api/using-graph-api/v2.3#debugging)閱讀關於 Graph API 偵錯模式的更多資訊。
如果用戶明確點按「登入」對話方塊中的「取消」按鈕,或是手動將應用程式切換回您的應用程式(稱為隱式取消),SDK 將回報為一次取消。您應避免在應用程式委派的生命週期中(例如在「application:openURL:sourceApplication:annotation:」中啟動登入)初始化登入流程,此動作與隱式取消行為相像。如果一定要執行,請稍後再將登入初始化分派到主要佇列,以便先完成應用程式委派的生命週期。
「分享」對話方塊會在用戶動作後,通知委派「sharer:didCompleteWithResults:」和「sharerDidCancel:」方法。
如果您提出要求時得到未預期的結果,請啟用「FBSDKGraphRequests」偵錯。在任何要求前面新增此程式碼:
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
您可以直接從伺服器查看要求和回應,並偵錯任何問題。
請考慮檢查在「FBSDKSettings.h」中定義的其他「FBSDKLoggingBehavior*」常數,以查看其他您可以記錄的項目。