Interface Builder文件中的未知类FBSDKLoginButton

时间:2015-05-18 19:20:28

标签: ios objective-c facebook facebook-ios-sdk xcode-storyboard

我的全新项目遇到了非常令人沮丧的构建问题。我正在尝试集成Facebook iOS SDK,但出于某种原因我得到了一些奇怪的错误。尝试使用FBSDKLoginKit在故事板视图上显示FBSDKLoginButton时。

当我尝试#import <FBSDKLoginKit/FBSDKLoginKit.h>时,第一个提示错误的是这个“错误”(但它只在编辑器中显示为错误;它仍然编译正常):

“无法构建模块FBSDKLoginKit。”

奇怪的是,这个“错误”在摆弄了一些与模块相关的构建设置之后就消失了,即使我将它们设置回原始值也是如此。

同样有趣的是,如果我从视图控制器中明确引用FBSDKLoginButton类(例如以编程方式添加按钮),那么基于故事板的实例化工作正常。所以我猜这肯定是一些链接器问题或其他问题,但我肯定不是那个东西的专业人士。

Facebook SDK文档都没有提到我能找到的这个问题,这很奇怪,因为我说这是一个全新的清洁项目。

2 个答案:

答案 0 :(得分:12)

我的不好,the documentation does mention this,建议通过引用FBSDKLoginButton中的application didFinishLaunchingWithOptions:类来解决问题。 (坦率地说,无论你在哪里引用它都没关系,所以无论哪里感觉最舒服。对我来说,视图控制器更有意义。)

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [FBSDKLoginButton class];
    ...
    return YES;
}

答案 1 :(得分:1)

对于Swift,请使用FBSDKLoginButton.superclass()

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    FBSDKLoginButton.superclass()

    return true
}