iOS 11 Xcode 9:CoreML 链接器命令失败,退出代码为 1(使用 -v 查看调用)

iOS 11 Xcode 9: CoreML linker command failed with exit code 1 (use -v to see invocation)

我正在尝试使用 AVFoundation

拍摄照片

这是我的代码:

@objc func didTapCameraView() {
    self.cameraView.isUserInteractionEnabled = false
    let settings = AVCapturePhotoSettings()
    let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!
    let previewFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewPixelType,
                         kCVPixelBufferWidthKey as String: 160,
                         kCVPixelBufferHeightKey as String: 160]
    settings.previewPhotoFormat = previewFormat
    if flashControlState == .off {
        settings.flashMode = .off
    } else {
        settings.flashMode = .on
    }
    cameraOutput.capturePhoto(with: settings, delegate: self)
}

但我每次都遇到同样的错误。

如果我在方法中注释代码,那么它可以正常构建。 让我知道我错过了什么。

更新: 使用 iPhone 6 iOS11

构建架构

使用物理设备时的快照

我在Apple开发论坛上找到了解释,查看这个link

此bug稍后会修复(遗憾的是在ode 9 GM版本中仍然存在)。 引用苹果论坛,我们可以使用这个解决方法:

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.

我测试了它并且它有效,他们说这种解决方法被认为是合法的并且不被认为是 SPI 使用。