在 运行 时间可靠地检测 iOS 上的 GPU 系列 3
Detecting GPU family 3 on iOS reliably at run time
我在代码中使用此函数检测 A9 或更高版本的设备:
public static var gpuFamily3AndHigh:Bool = {
return ARConfiguration.isSupported //Hack to know A9 or more
}
但现在 Apple 拒绝了该代码,因为该应用程序没有 ARKit 功能。如何在 iOS 13 和 iOS 12 上不使用 ARKit 来识别它。在 iOS 13 上,我知道我可以做:
public static var gpuFamily3AndHigh:Bool = {
// return ARConfiguration.isSupported //Hack to know A9 or more
guard let device = MTLCreateSystemDefaultDevice() else { return false }
return device.supportsFamily(.apple3)
}()
但我不知道 .apple3 是否比 .common3 更合适,还有我在 iOS 12 上做什么?
如果我读 this document 正确,您应该在 API 可用时检查支持的系列(像您一样),否则返回检查特定功能集。
如果您真的想专门检查 A9 及更高版本,系列 .apple3
和功能集 .iOS_GPUFamily3_v1
似乎是可行的方法。
我在代码中使用此函数检测 A9 或更高版本的设备:
public static var gpuFamily3AndHigh:Bool = {
return ARConfiguration.isSupported //Hack to know A9 or more
}
但现在 Apple 拒绝了该代码,因为该应用程序没有 ARKit 功能。如何在 iOS 13 和 iOS 12 上不使用 ARKit 来识别它。在 iOS 13 上,我知道我可以做:
public static var gpuFamily3AndHigh:Bool = {
// return ARConfiguration.isSupported //Hack to know A9 or more
guard let device = MTLCreateSystemDefaultDevice() else { return false }
return device.supportsFamily(.apple3)
}()
但我不知道 .apple3 是否比 .common3 更合适,还有我在 iOS 12 上做什么?
如果我读 this document 正确,您应该在 API 可用时检查支持的系列(像您一样),否则返回检查特定功能集。
如果您真的想专门检查 A9 及更高版本,系列 .apple3
和功能集 .iOS_GPUFamily3_v1
似乎是可行的方法。