【问题标题】:Try Sample AVCAM from apple found error尝试来自 Apple 的 Sample AVCAM 发现错误
【发布时间】:2018-01-21 22:11:42
【问题描述】:

当我尝试使用 Xcode 版本 9.0 beta 5 (9M202q) 进行示例 AVCAM swift 时。我发现了错误。

架构 x86_64 的未定义符号:
"__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP", 参考自: __T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ 在 CameraViewController.o
"__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0Says6UInt32VGfg", 参考自: __T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ 在 CameraViewController.old 中:未找到架构的符号 x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 到 见调用)

有什么问题?以及如何解决这个问题?

【问题讨论】:

  • 您的库不支持模拟器,请在设备中检查一次
  • 我会试试你的解决方案。我稍后会更新
  • @Anbu.Karthik 我尝试在没有设备的情况下构建它不起作用。现在我尝试用设备构建一些问题。你知道怎么解决吗?
  • 问题出在哪里
  • @aBikis 请看官方解决方法:stackoverflow.com/a/45861760/333733

标签: ios swift xcode ios11


【解决方案1】:

2017 年 9 月 15 日更新:

苹果官方回应:

我们深表歉意。对于使用 Swift 3.2 或 Swift 4.0 的应用程序,有几个 AVFoundation 捕获 API(外部协议的公共扩展) 在 Xcode 9 中被无意中标记为私有。以下 AVFoundation API 暂时不可用:

  • AVCaptureDevice.Format.supportedColorSpaces

  • AVCaptureDevice.supportedFlashModes

  • AVCapturePhotoOutput.availablePhotoPixelFormatTypes

  • AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes

  • AVCapturePhotoSettings.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.0 GM (9A235) 中再次出现问题。

提交新的错误报告以供参考:rdar://34420979


上一个:

更新:已在 Xcode Beta 6 中修复。

为 Xcode 9.0 beta 5 (9M202q) 提交了错误报告 rdar://33935456

【讨论】:

  • 感谢您的更新。问题没有了。我将更新接受的答案。 Xcode Beta 5 和 6 仍然存在问题 如果您只想使用 Xcode Beta 5 或 6 进行修复,那么您可以尝试 Andrew Herbert。
【解决方案2】:

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 测试版的设备上编译并正常运行。

【讨论】:

【解决方案3】:

这似乎是一个 Xcode 错误。示例代码在 Xcode 9.0 beta (9M136h) 中构建良好。以 rdar://33903950 向 Apple 报告。

更新:雷达现已关闭。问题已在 Xcode 9.0 Beta 6 (9M214v) 中得到修复。

【讨论】:

  • 也提交了错误报告 (33935456)。使用Xcode Version 9.0 beta 5 (9M202q)
  • 是的。这是错误。 Andrew Herbert 解决了我的问题。
【解决方案4】:

尝试将 AVFoundation 添加到链接框架(目标 -> 构建阶段 -> 将二进制文件与库链接)

【讨论】:

  • 有同样的问题并尝试了上述方法,但对我不起作用。我做错了吗?
猜你喜欢
  • 2021-06-15
  • 2021-04-20
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 2019-09-16
  • 2015-07-09
相关资源
最近更新 更多