Подтвердить что ты не робот

Попробуйте образец AVCAM из найденной ошибки apple

Когда я попробовал образец AVCAM swift с Xcode Version 9.0 beta 5 (9M202q). Я нашел ошибки.

Undefined символы для архитектуры x86_64:
"__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP", ссылка:       __T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ в CameraViewController.o
"__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0Says6UInt32VGfg", ссылка:       __T05AVCam20CameraViewControllerC12capturePhoto33_F53A4CF98D799BDDCA6C04BA14C549A1LLySo8UIButtonCFyycfU_ в CameraViewController.o ld: символы (символы), не найденные для архитектуры x86_64 clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v для см. вызов)

В чем проблема? и как это исправить?

4b9b3361

Ответ 1

Обновление 15 сентября 2017 года:

Официальный ответ Apple:

Наши извинения. Для приложений, использующих Swift 3.2 или Swift 4.0, несколько API-интерфейсы APFoundation capture (публичные расширения по внешнему протоколу) были непреднамеренно выделены в Xcode 9. API AVFoundation временно недоступен:

  • AVCaptureDevice.Format.supportedColorSpaces

  • AVCaptureDevice.supportedFlashModes

  • AVCapturePhotoOutput.availablePhotoPixelFormatTypes

  • AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes

  • AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes

    В качестве обходного пути вы можете использовать версии SwiftPrivate этих API путем добавления каждого API с двойным подчеркиванием (__). Например, измените AVCaptureDevice.Format.supportedColorSpaces на AVCaptureDevice.Format.__supportedColorSpaces.

Я могу подтвердить, используя __availablePreviewPhotoPixelFormatTypes исправляет ошибки сборки.

например.

let settings = AVCapturePhotoSettings()
let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!

Источник: https://forums.developer.apple.com/thread/86810#259270


Обновление 14 сентября 2017 года:

Проблема повторяется в Xcode 9.0 GM (9A235).

Поданный новый отчет об ошибке для справки: rdar://34420979


Предыдущий:

Обновление: исправлено в Xcode Beta 6.

Подал отчет об ошибке rdar://33935456 для Xcode версии 9.0 beta 5 (9M202q).

Ответ 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). Сообщено Apple как rdar://33903950.

Обновление: теперь радар закрыт. Проблема исправлена ​​в Xcode 9.0 Beta 6 (9M214v).

Ответ 4

Попробуйте добавить AVFoundation к связанным фреймворкам (Target → Build Phases → Link Binary с библиотеками)