构建 React Native 桥,但找不到框架内的文件

Building a React Native bridge but a file within the framework can't be found

我正在尝试为 RichRelevance iOS SDK 构建 React Native 包装器。

我已经创建了包装器项目并将其导入到我的 React Native 应用程序中。我正在使用 Cocoapods 将 RichRelevance SDK 添加到应用程序

我现在正尝试使用以下方法将 RichRelevance SDK 导入包装器项目:
#import <RichRelevanceSDK/RichRelevanceSDK.h>

我遇到的问题是,当编译器尝试编译 RichRelevanceSDK 时,它会抛出一个错误,提示找不到其中一个文件:

第63行是SDK中编写的原始导入。我添加了第 62 行以显示如果更改导入类型可以找到该文件。但是,这并不是一个真正的选择,因为我不想修改 SDK(我不拥有它)。

在任一类型的导入中,我都可以按住 cmd 并单击文件并转到定义。所以 XCode 似乎知道该文件。此外,我在项目浏览器中看到该文件位于: Pods -> Pods -> RichRelevanceSDK -> RCHImportable.h

这个文件的主要区别在于,如果我在文件浏览器中查看,该文件位于一个子文件夹中,相对于 SDK 中的所有其他文件:

我希望有一种方法可以更改我的包装器项目,以便可以找到该文件,这样我就不必编辑或分叉 SDK 文件。

到目前为止,我已经尝试更新包装器项目中的各种搜索路径,但没有成功。我已将以下两条路径添加到所有搜索路径中:

更新: 我取得了一些进展,现在可以编译了。

我结束了:

  1. 将 SDK 的存储库克隆到我的计算机上
  2. 正在从 Podfile 中删除 SDK
  3. 将 SDK 的 xcodeproj 文件添加到 MyApp/Libraries
  4. 将 SDK.framework 文件添加到 MyApp -> 嵌入式二进制文件
  5. 我现在可以将 SDK 导入我的桥接模块

尽管如此,我还是希望找到更好的方法。这种方法要么涉及我将 SDK 提交到我们的存储库,要么要求我所有的同事将存储库克隆到他们的机器上。 NPM 似乎无法安装 repo;我猜这是因为回购缺少 package.json 文件

包装似乎确实有问题,因为有问题的 header 似乎被捕获在 Podspec 的 public_header_files glob 中。

但是,我认为更直接的路径是简单地包含 RCHSDK.h 文件,因为 RCHSDK 是 SDK 函数的入口点。 RichRelevanceSDK.h 主要作为 shorthand 用于导入额外的 header 而不是单独指定它们。

或者,您可以按照 Include of non-modular header inside framework module 中的说明进行操作,这似乎解决了本地测试中的问题。