部署目标,基础SDK,Swift版本

时间:2018-06-15 18:42:19

标签: ios swift xcode

在Xcode中,有部署目标,基本SDK和Swift版本,我试图了解它是如何工作的,所以如果我错了请纠正我。

据我了解,您的部署目标是您要支持的最新设备。这与Swift版本无关。

对于基本sdk,您通常需要最新的SDK。如果您支持像9.0这样的旧版iOS,并且不支持某些内容,则必须进行检查,如

if #available(iOS 10.0, *) { } else { }

这似乎也完全不依赖于Swift版本。

最后,Swift版本。在WWDC会谈中,Apple谈到升级到最新的4.2。但我不确定从开发人员的角度来看这实际意味着什么,并支持旧版本的iOS。就像我查找Codable,(https://developer.apple.com/documentation/swift/codable)一样,它表示SDK Xcode 9.0+。看起来如果你是应用程序的创建者,你可以使用最新的Swift版本,并且仍然有一个较旧的部署目标,比如iOS 9.0,而且大部分内容应该“正常工作”。但是如果你是一个框架开发人员,那似乎并非如此。就像我查看AlamoFire(https://github.com/Alamofire/Alamofire)一样,它说Xcode 8.3+和Swift 3.1。那么这是否意味着为了让像AlamoFire这样的框架开发人员向后兼容使用Swift 3.1或更高版本的应用程序,他们自己只能使用Swift 3.1而不能使用更新的Swift功能?

ABI的稳定性是什么?我试过阅读,但不确定我是否理解。是否一旦Swift 5出现,直到ABI兼容,框架开发人员可以使用Swift 7.0和依赖于使用Swift 5.0的框架的应用程序,只要ABI仍然兼容,它就会“只是”工作”?

0 个答案:

没有答案