我正在创建一个动态框架(Cocoa Touch Framework),它必须使用VideoKit lib作为核心 . Library是一个.a文件,其中包含许多头文件(大约20个)和ObjC中的示例ViewControllers(您可以从以下位置获取演示SDK:Link) . 在未来,我的框架将提供一个用Swift编写的播放器小部件(基于来自ObjC和其他一些特定功能的源代码)到DemoApp . 但是现在我无法以适当的方式处理动态框架中的依赖项 .

我的第一种方法是将SDK添加到Framework项目中 . 我按照 生产环境 者提供的说明进行操作,但不是将SDK添加到App项目中,而是将其添加到动态框架项目中 . VideoKit库没有模块映射文件,也没有Umbrella Headers ,所以我创建了它们 . 结果是一些错误消失了(与模块中的Headers有关) . 我还从编译源中删除了Controllers源文件,因为我不需要它们 - 我只是想首先运行核心 . 我遇到了错误,说各种架构都没有符号(x86,arm64) .

我的第二种方法是基于我在SO和其他资源上阅读的内容 . 我将依赖项移到了App项目中 . 在动态框架构建设置中,我添加了从VideoKit SDK到现在存储在App Project中的Headers和Library源的路径 . 再次,我坚持使用“未定义的架构符号”错误 .

如果有人可以指导我做错了什么我会很感激 - 这是我第一次构建依赖静态库的框架而不能使用Dependency Managers来解决它 - 实际上这是我第一次构建iOS Framework .

以下是我对这个问题的实际工作的回购链接:Repo

由于许可限制,我不得不从项目中删除VideoKit SDK . 您必须下载并手动添加 .