0

我正在尝试为我的公司进行此设置: https ://developers.facebook.com/docs/tutorials/mobile-app-ads/

我使用此处的说明将其放入我们的应用程序: https ://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/

从我最初尝试集成和获取数据来看,这似乎只适用于 iOS 6。当我为 iOS 6 模拟器运行应用程序时,它运行良好,但对于运行 iOS 5 的实际设备,它在链接期间失败:
ld:未找到框架 社交

这个 FB SDK 功能真的只能在 iOS 6+ 应用程序中工作吗?如果是这样,有谁知道如何与支持 iOS 4.3 到 iOS 6+ 的应用程序集成 FB 移动广告报告。

谢谢!

4

3 回答 3

1

澄清一下,Facebook iOS SDK 支持操作系统版本 4.3 及更高版本。但是,如果您想使用 iOS6,则需要链接 3 个框架:“Accounts”、“AdSupport”和“Social”。非常重要的是要注意,当您链接这些框架时,您可以将它们设为可选,以避免在 iOS6 之前的设备上运行时出现编译错误。

由于 Facebook SDK 支持 4.3+,因此移动广告安装应与 4.3+ 版本一起使用。

于 2012-11-12T19:26:57.387 回答
1

新的 SDK 实际上需要 6 个。

不知道是什么导致了错误,但为了消除构建问题,我只是清理了构建文件夹,从项目中删除了派生数据,并删除并重新添加了 facebook 库。

然后为了防止这种情况在 iOS 6 之前的情况下爆炸,我将它添加到我的应用程序中:


+ (BOOL)isSocialFrameworkAvailable
{
    static BOOL available = NO;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        available = NSClassFromString(@"SLComposeViewController") != nil;        
    });
    return available;
}


- (BOOL)application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
{
    // [...]    

    if ([[self class] isSocialFrameworkAvailable]) {        
        [FBSettings setLoggingBehavior:[NSSet setWithObjects:
                                        FBLoggingBehaviorFBRequests,
                                        FBLoggingBehaviorFBURLConnections,
                                        FBLoggingBehaviorAccessTokens,
                                        FBLoggingBehaviorPerformanceCharacteristics,
                                        FBLoggingBehaviorSessionStateTransitions, 
                                        nil]];
        NSDate *facebookIdPublishedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"facebookIdPublishedDate"];
        if (!facebookIdPublishedDate) {
            [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"facebookIdPublishedDate"];        
            [FBSettings publishInstall:@"XXXXXXXXXXXXXXXX"];
        }
    }    


    // [...]
}
于 2012-11-12T02:38:17.437 回答
0

我认为新的 SDK 需要 iOS 5 或 6 - 我认为没有办法在 5 之前的 iOS 版本中使用 3.1 SDK - 有关支持 5 和 6 的详细信息,请参阅带有 iOS5 和 iOS6的 Facebook,但我不认为这适用于 4

于 2012-11-08T23:28:36.653 回答