苹果官方回应:
我们的歉意。对于使用Swift 3.2或Swift 4.0的应用程序,一些AVFoundation捕获API(外部协议的公共扩展)在Xcode 9中被无意中标记为私有。以下AVFoundation API暂时不可用:
AVCaptureDevice.Format.supportedColorSpaces
AVCaptureDevice.supportedFlashModes
AVCapturePhotoOutput.availablePhotoPixelFormatTypes
AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes
作为解决方法,您可以通过在每个API前面加上双下划线(__
)来使用这些API的SwiftPrivate版本。例如,更改AVCaptureDevice.Format.supportedColorSpaces
为AVCaptureDevice.Format.__supportedColorSpaces
。
我可以确认使用__availablePreviewPhotoPixelFormatTypes
修复程序生成错误。
例如
let settings = AVCapturePhotoSettings()
let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!
资料来源:https ://forums.developer.apple.com/thread/86810#259270
问题在 再次发生。
提交了新的错误报告以供参考: rdar://34420979
更新:Xcode Beta 6中已修复。
提交了rdar://33935456
有关Xcode 9.0 beta 5(9M202q)的错误报告。