问题描述:

我一直在想,是否有可能发布一个应用程序,它包含新的iOS版本内置的新的Twitter和Facebook框架,但仍然可以部署到旧的iOS版本,如果iOS版本不正确,会不会有办法禁用该框架?<iOS 5的Twitter和Facebook API

+0

如果您的项目针对5.0之前的iOS版本进行编译,则建议您将Twitter设置为“可选”。和Facebook框架可选,如果您的项目编译的iOS版本早于6.0。 – Bala

在iOS 6中,你可以像这样很容易地进行整合。 例

- (IBAction)Facebook:(id)sender 
{ 

    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 

     SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

     SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){ 
      if (result == SLComposeViewControllerResultCancelled) { 

       NSLog(@"Cancelled"); 

      } else 

      { 
       NSLog(@"Done"); 
      } 

      [controller dismissViewControllerAnimated:YES completion:Nil]; 
     }; 
     controller.completionHandler =myBlock; 

     [controller setInitialText:@""]; 

     [self presentViewController:controller animated:YES completion:Nil]; 
    } 
} 

您可以使用Twitter和Facebook发布应用程序,但您需要在调用API之前始终检查运行该应用程序的设备的iOS版本。 您的应用在较旧的iOS版本中将没有这些功能。

这不是一个坏主意覆盖的iOS 5.0或更高版本为2012年6月苹果公司表示,该设备的80%以上的有5的iOS 您可以在此keynote在分钟69' 看到它。

有关设备列表和支持的iOS版本,您可以阅读this

我建议你使用它提供了一个抽象了OS支持的水平Facebook SDK for iOS

如果配置正确(例如,将新框架标记为可选,按照here),该操作将在较早版本的操作系统上运行,并在需要时退回到备用FB身份验证方法(例如通过FB应用程序或Web视图) 。