5

我为 Apple 的平台构建了 FFmpeg 作为 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 中展示了它,框架出售了一个模块。如果我仍然尝试设置标头搜索路径,那么您现在每个体系结构都有不同的标头。

XCFramework 内容概览

4

2 回答 2

0

尝试@import FFmpeg并设置Enable Modules (C and Objective C)YES从构建设置。确保Link Frameworks Automatically设置为YES

于 2020-04-26T12:42:50.390 回答
0

您需要将头文件与 xcframework 并行放置,并将头文件搜索路径设置为该头文件。xcframework 就像一个单独的 .a 文件,Xcode 不会在 xcframework 中搜索标题。

于 2020-11-19T13:14:45.783 回答