当我尝试使用Xcode版本9.0beta 5 (9M202q)的示例AVCAM时。我发现了错误。
架构x86_64的未定义符号: 引用的"__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP",:CameraViewController.o中的__T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ "__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0Says6UInt32VGfg",引用自:__T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ in CameraViewController.old:符号(S)未找到用于体系结构的x86_64 clang: x86_64: linker命令失败,退出代码1(使用-v查看调用)
有什么问题吗?怎么才能解决这个问题?
发布于 2017-08-24 12:32:47
2017年9月15日更新:
苹果的官方回应:
我们道歉。对于使用SWIFT3.2或SWIFT4.0的应用程序,一些AVFoundation捕获API (外部协议的公共扩展)在Xcode 9中被无意中标记为私有。以下AVFoundation API暂时不可用:
AVCaptureDevice.Format.supportedColorSpacesAVCaptureDevice.supportedFlashModesAVCapturePhotoOutput.availablePhotoPixelFormatTypesAVCapturePhotoOutput.availableRawPhotoPixelFormatTypesAVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes
作为解决办法,您可以使用这些API的SwiftPrivate版本,方法是在每个API前面加上双下划线(__)。例如,将AVCaptureDevice.Format.supportedColorSpaces更改为AVCaptureDevice.Format.__supportedColorSpaces。我可以确认使用__availablePreviewPhotoPixelFormatTypes修复了构建错误。
例如。
let settings = AVCapturePhotoSettings()
let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!来源:https://forums.developer.apple.com/thread/86810#259270
2017年9月14日更新:
在Xcode 9.0GM (9A235)中再次发生问题。
提交新的bug报告以供参考:rdar://34420979
前任:
更新:修正了Xcode Beta 6。
为Xcode版本9.0beta 5 (9M202q)提交了一个bug报告rdar://33935456。
发布于 2017-08-17 02:09:41
Xcode 9.0 beta 5 (9M202q)肯定与AVCam Swift修订版2017-06-06有问题。幸运的是,这个问题被隔离到了CameraViewController.swift中的这三行
if !photoSettings.availablePreviewPhotoPixelFormatTypes.isEmpty {
photoSettings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: photoSettings.availablePreviewPhotoPixelFormatTypes.first!]
}注释掉上述代码,AVCam将在运行最新的iOS 11测试版的设备上编译并运行良好。
发布于 2017-08-15 21:26:47
这似乎是一个Xcode错误。示例代码在Xcode 9.0 beta版(9M136h)中构建得很好。向苹果报告为rdar://33903950。
最新消息:雷达现已关闭。问题是固定在Xcode 9.0 Beta 6 (9M214v)。
https://stackoverflow.com/questions/45668293
复制相似问题