Update 15 Sept 2017:
Official response from Apple:
Our apologies. For apps using Swift 3.2 or Swift 4.0, several
AVFoundation capture APIs (public extensions on external protocol)
were inadvertently marked private in Xcode 9. The following
AVFoundation API are temporarily unavailable:
AVCaptureDevice.Format.supportedColorSpaces
AVCaptureDevice.supportedFlashModes
AVCapturePhotoOutput.availablePhotoPixelFormatTypes
AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes
As a workaround you can use the SwiftPrivate versions of these API
by prepending each API with double underscore (__
). For example,
change AVCaptureDevice.Format.supportedColorSpaces
to
AVCaptureDevice.Format.__supportedColorSpaces
.
I can confirm using __availablePreviewPhotoPixelFormatTypes
fixes the build errors.
E.g.
let settings = AVCapturePhotoSettings()
let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!
Source: https://forums.developer.apple.com/thread/86810#259270
Update 14 Sept 2017:
Issue reoccurs in Xcode 9.0 GM (9A235).
Filed new bug report for reference: rdar://34420979
Previous:
Update: Fixed in Xcode Beta 6.
Filed a bug report rdar://33935456
for Xcode Version 9.0 beta 5 (9M202q).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…