![](/img/trans.png)
[英]How to check the iOS SDK version used to compile .ipa or .app file
[英]Check Xcode/iOS SDK version used to compile the app in Swift
Let's say I'm building a SDK and I want it to work on both Xcode 10 and Xcode 11. What can I do to make some code like this to also compile in Xcode 10?
var style = UIStatusBarStyle.default
if #available(iOS 13.0, *) {
style = UIStatusBarStyle.darkContent
}
由於.darkContent
僅在 iOS 13 上可用,我會假設if #available(iOS 13.0, *)
就足夠了。 這在 Xcode 11 上工作正常,但在 Xcode 10 上我得到這個編譯錯誤:
類型“UIStatusBarStyle”沒有成員“darkContent”
在 Objective-C 我用過這種宏
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
// Use something that is only available on Xcode 11 and Xcode 10 doesn't understand
#endif
但這在 Swift 中不起作用
那么,在 Swift 上是否有類似的方法來檢測代碼是否在 Xcode 10 上運行或使用 SDK 12 編譯?
不完美,但你可以使用
#if compiler(>=5.1)
if #available(iOS 13.0, *) {
style = UIStatusBarStyle.darkContent
}
#endif.
5.1 是 Xcode 11 附帶的編譯器版本,因此代碼不會在 Xcode 10 中編譯。除了編譯時#if
檢查之外,您仍然需要運行時if #available
檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.