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