Использовать FFmpeg XCFramework из Objective-C, заголовки не найдены
Я создал FFmpeg для платформ Apple как XCFramework. Для этого я использовал скрипт из https://github.com/kewlbear/FFmpeg-iOS-build-script/pull/147.
Теперь я пытаюсь использовать эту структуру внутри традиционной платформы iOS/macOS (с именем VideoEditing), которая затем используется в моем приложении iOS (скоро, чтобы попытаться стать Catalyst).
В VideoEditing
Я связался с FFmpeg.xcframework
а затем в приложении, которое использует VideoEditing
Я связал и встроил FFmpeg.xcframework
. Раньше я создавал FFmpeg как стандартную статическую библиотеку и использовал ее изнутри.VideoEditing
в оболочке Objective-C++, чтобы я мог использовать все это из Swift.
В этом файле Objective-C++ я бы импортировал заголовки FFmpeg, например #import <libswscale/swscale.h>
Чтобы это сработало, мне пришлось установить пути поиска заголовков. Как вы должны это сделать после преобразования в XCFramework? я пытался@import FFmpeg
, #import <FFmpeg/libswscale/swscale.h>
, #import <FFmpeg/swscale.h>
так же как #import <libswscale/swscale.h>
. В любом случае я просто получаюfile not found
ошибка на import
линия.
Все примеры Apple показывают это только в Swift с фреймворком, продающим модуль. Если бы я попытался установить путь поиска заголовков, теперь у вас есть разные заголовки для каждой архитектуры.
1 ответ
Пытаться @import FFmpeg
а также установить Enable Modules (C and Objective C)
к YES
из настроек сборки. Убедись, чтоLink Frameworks Automatically
установлен на YES
Вам нужно разместить файлы заголовков параллельно xcframework и установить путь поиска заголовков для этого файла заголовка. xcframework похож на один файл.a, Xcode не будет искать заголовки внутри xcframework.