您可以在多個 iOS 應用程式中使用同一個 Facebook 應用程式編號;舉例來說,應用程式的免費及付費版本。
在應用程式的「.plist」檔案中定義網址配置尾碼參數「FacebookUrlSchemeSuffix」。
注意:尾碼僅適用英文字母。
由於原生分享對話框屬於 Facebook iOS 應用程式的一部分,因此無法在模擬器上執行。請使用實體裝置測試原生分享對話框。我們正在嘗試讓您從模擬器上測試原生分享對話框。
請務必在每個檔案的最上方(即您嘗試使用 Facebook SDK 類別之處)設有正確的匯入陳述式:例如:
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
在 Objective-C 中使用架構時,使用類型延伸現有類別的類別無法自動載入。
嘗試調用延伸到這些類別的方法時,您會遇到「將無法辨識的選擇器傳送到執行個體」錯誤。從 Xcode 介面產生器使用的類別亦無法自動載入,例如,當您要新增「FBSDKLoginButton」到介面時,是利用在 .xib 檔案中繪製檢視效果,然後再從介面產生器用戶介面設定為「FBSDKLoginButton」的方式,便會遇到此情況。再次提醒,當您嘗試在這些類別調用方法時,將會遇到「將無法辨識的選擇器傳送到執行個體」錯誤。您有兩個方法可以解決此問題。
在應用程式委派的「application:didFinishLaunchingWithOptions:」中手動載入類別,方法是調用:
[FBSDKLoginButton class];
或者,您可以新增「-ObjC」連結器旗幟。此旗幟會指示連結器載入 SDK 中的每個物件檔案,此處的 SDK 是用於界定 Objective-C 類別或類型。此方式將讓所有類別立即可用,但也會增加執行檔的大小(因為應用程式會載入額外的物件程式碼)。
若要新增「-ObjC」旗幟,請點擊專案目標,然後選擇「建立設定」標籤。在「連結」下方,雙擊「其他連結器旗幟」新增「-ObjC」。
「.plist」檔案經常發生配置錯誤。請確保「.plist」中包含「FacebookAppID」及「FacebookDisplayName」這兩列,以及「fb{app-id}」網址類型項目。
如果您提出 Graph API 要求時得到未預期的結果,請在提出任何要求前加入此程式碼以啟用除錯模式:
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
如果您要抑制資訊級別的訊息,並僅保留警告訊息,請使用「FBSDKLoggingBehaviorGraphAPIDebugWarning」。
若啟用此記錄行為,會將「debug」參數新增到所有 Graph API 要求,並輸出主控台中產生的所有問題。
您可以在這裡 閱讀關於 Graph API 除錯模式的更多資訊。
如果用戶明確點按「登入」對話框中的「取消」按鈕,或手動將應用程式切換回您的應用程式(稱為隱式取消),SDK 將回報為一次取消。您應避免在應用程式委派的生命週期中(例如在「application:openURL:sourceApplication:annotation:」中啟動登入)初始化登入流程,此動作與隱式取消行為相像。如果一定要執行,請稍後再將登入初始化分派到主要佇列,以便先完成應用程式委派的生命週期。
「分享」對話框會在用戶動作發生時通知委派的「sharer:didCompleteWithResults:」和「sharerDidCancel:」方法。
如果您提出要求時得到未預期的結果,請啟用「FBSDKGraphRequests」除錯。在任何要求前面新增此程式碼:
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
您可以直接從伺服器查看要求和回應,並為任何問題進行除錯。
請考慮檢查在「FBSDKSettings.h」中界定的其他「FBSDKLoggingBehavior*」常數,以查看其他您可以記錄的項目。