我正在开发Xcode 14.0 beta 3 (14A5270f)的应用程序。目标支持的目的地是:
iPhone (iOS)- iPad (iOS)
- Mac (macOS)
iOS部署目标为16.0macOS部署目标为13.0
我正在寻找某种方法来检测哪个目的地正在运行。我有一个条形码扫描视图,我只想在iPhone或iPad目的地上显示。
感谢https://stackoverflow.com/users/341994/matt在评论中的文档指针,这让我继续。这是我的最终解决方案。
enum PlatformDestination: Int {
case iPhone
case iPad
case iOSOnMac
case MacCatalyst
case Mac
static func destination() -> PlatformDestination {
#if os(iOS)
switch UIDevice.current.userInterfaceIdiom {
case .phone:
return .iPhone
case .pad:
return .iPad
case .carPlay:
return .CarPlay
case .tv:
return .tvOS
case .unspecified:
break
case .mac:
return .iOSOnMac
default:
break
}
#endif
if ProcessInfo().isMacCatalystApp {
return .MacCatalyst
} else {
return .Mac
}
}
}