BaseSDK & DeploymentTarget
2018-08-24 本文已影响12人
蓝白自由
deployment [diː'plɒɪmənt] 调度,部署
- Base SDK 设置为当前 Xcode 编译使用的 SDK 版本,比如
Latest IOS(IOS7.1)
- Deployment Target 设置为你所支持的最低的 iPhone OS 版本,比如
5.0
。也就是你手机/pad运行本项目的最低版本。即本项目最低运行环境在5.0系统及以上版本。
这两个在开发的时候需要注意,比如用 Xcode5.0 默认的设置开发的 app是 iOS 7.0 的,想要适配 iOS6.1,需要将 Development Target 改成 iOS 6.1,并且将模拟器设置成 iOS 6.1,再运行程序的话就是在 iOS 6.1 下边运行了,但是如果不设置 BaseSDK 的话,工程就是基于 SDK 7.0 编译而基于 SDK 6.1 运行,这样极有可能崩溃;
比如 因 tintColor :
self.window.tintColor = [UIColor redColor];
运行程序,不会出错。现在将 Development Target 改成 6.1,将模拟器改成 6.1。然后运行,编译通过,但是运行崩溃,打印
-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850
reason: '-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850'
这是因为程序是在 SDK 7.0 下编译的,tintColor 没有问题,但是在SDK6.1下运行,6.1中是没有 tintColor 的,结果就崩溃了。将 BaseSDK改成6.1,再运行,就会编译出错,无法运行
将上边一句改成
#ifdef __IPHONE_7_0 self.window.tintColor = [UIColor redColor];#endif
再运行,完美通过……