我正在尝试为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文件。
到目前为止,我已经尝试更新我的包装器项目中的各种搜索路径,但没有运气。我已经为所有搜索路径添加了以下两个路径:
更新 我能够取得一些进展,现在我可以将其编译。
我结束了:
我仍然希望找到更好的方法来做到这一点。这个方法要么让我将SDK提交到我们的仓库,要么让所有同事将仓库克隆到他们的机器上。 NPM似乎无法安装回购;我的猜测是因为repo缺少package.json
文件
答案 0 :(得分:1)
包装似乎有问题,因为有问题的标题似乎是在Podspec的public_header_files glob中捕获的。
但是,我认为更直接的方法是简单地包含RCHSDK.h文件,因为RCHSDK是SDK函数的入口点。 RichRelevanceSDK.h主要用作导入其他标题的简写,而不是单独指定它们。
或者,您可以按照Include of non-modular header inside framework module中的说明操作,这似乎可以解决本地测试中的问题。