如何在我们支持iOS 4.3+的应用程序中集成Facebook的移动广告功能?

时间:2012-11-08 23:05:55

标签: ios facebook-ios-sdk

我正在努力为我的公司设置这个: 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移动广告进行整合。

谢谢!

2 个答案:

答案 0 :(得分:1)

新SDK实际上需要6。

不确定导致错误的原因,但是为了消除构建问题,我只是清理了构建文件夹,从项目中删除了派生数据,并删除了&重新添加了facebook libs。

然后为了防止这种情况在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"];
        }
    }    


    // [...]
}

答案 1 :(得分:1)

为了澄清,Facebook iOS SDK支持OS版本4.3及更高版本。但是,如果您想使用iOS6,则需要链接3个框架:“帐户”,“AdSupport”和“社交”。非常重要的是要注意,当您链接这些框架时,您可以选择这些框架,以避免在iOS6之前的设备上运行时出现编译错误。

因此,由于Facebook SDK支持4.3 +。

,因此移动广告安装应该适用于版本4.3+