转自:
http://www.okyo.cn/article/7/93.html
http://blog.csdn.net/openglnewbee/article/details/17240719#comments
Xcode为开发者提供了两个可配置的设置:第一个是Base SDK,第二个是iOS的Deployment Target。通过配置这两个参数可定制应用的功能以及可运行的设备和操作系统版本。
Base SDK设置为当前xcode所支持的最高的sdk版本,比如"iphone Device 4.0"。iPhone OS Deployment Target设置为你所支持的最低的iPhone OS版本,比如"iPhone OS 3.0"。
打开配置界面的操作如下:
打开工程,然后选择工程导航面板上的工程文件;
在编辑器面板上选择**TARGETS**,再选择**Build Settings**选项卡,Base SDK设置通常是这里的第三个选项,Deployment Target在Deployment下,但在这个面板上寻找设置的最简单办法是在搜索条中搜索。
1. 配置Base SDK设置
Base SDK,指的是当前编译所用的SDK 版本。
可以将值改为“Latest iOS SDK”或者是开发机器上安装的任意版本的SDK。Base SDK设置会引导编译器使用该版本的SDK编译和构建应用,也就是说,它会直接控制应用使用哪些API。默认情况下,Xcode中创建的新工程总是使用最新版本的SDK,而苹果会处理API的废弃。
除非你有充分的理由,否则你应该使用这个默认值。
2. 配置Deployment Target设置
Deployment Target,它控制着运行应用需要的最低操作系统版本。
如果你将它设成了特定版本,比如5.0,App Store会自动阻止运行早期操作系统的用户下载或安装这个应用。要满足较多用户的需求,我建议至少向后兼容操作系统的上一个版本。举个例子,如果iOS 6是最新的版本,那么至少应该支持iOS 5。可以在设置Base SDK所在的Building Settings选项卡中设置Deployment Target。
如果你使用iOS 6 SDK中可用的功能,又想支持早期版本,可以将Base SDK设置为最新的SDK(iOS 6),而将Deployment Target至少设置为iOS 5。不过,如果你的应用运行在iOS 5设备上,一些框架和功能可能不能用。开发人员的职责就是让其应用适应这种情况,能够正确工作而不会崩溃。
结论:我们所依赖的lib库的deployment target不应该高于应用的deployment target,否则很可能报错,而且这个错误不一定是你直接调用的方法,很可能是系统底层代码。
操作建议:在没有技术要求的情况下(如lib库依赖于某个版本的新功能),不要采用默认的deployment target,而是尽可能的把lib库的deployment target设置低一些,这样能够最大程度的保证兼容低版本的设备,也避免上述的奇怪问题的产生。
这一点真的以前不清楚,也没接触或,真是谢谢大大。
网友评论