目前我们正在开发一个需要使用InsiderMobile
cocoapods的自定义框架。根据本指南,我们将需要创建桥接头文件以使用InsiderMobile。但是,桥接标头或 Umbrella 文件在我们的框架中不起作用,因此我们必须将MapModule
与Build Settings/Import Paths
方法一起使用,然后框架编译就可以了。
当我们尝试将框架应用于应用程序时,就会出现实际问题。框架可识别除InsiderMobile
之外的所有其他 Pod。以下是我们当前的设置:
- 我们在 Pods 文件夹中获得了自定义框架和 InsiderMobile,
- 我们的自定义框架是嵌入式的,
MapModule
Build Settings/Import Paths
方法也适用,
以下是我们已经尝试过的一些方法:
- 再次
pod install
,删除派生数据,清理并重新生成项目, - 手动编辑自定义框架-umbrella文件,但遇到新错误:"在框架模块中包含非模块化标头",也尝试将
Allow Non-modular Includes In Framework Modules
设置为Build Settings
是 - 还嵌入
InsiderMobile
框架,
上述方法都不能解决问题。有没有办法允许我们的自定义框架导入InsiderMobile
?提前谢谢。
如果有帮助,我找到了一种暂时解决此问题的方法。不是最好的,但帮助我们摆脱开发过程。基本上,我一直在尝试使用.modulemap
方法,您可以在此处找到文档。然后我找到了这个话题,然后这家伙回购。我只是按照 repo 对.modulemap
文件进行一些更改,一切对我来说都很好。这是我.modulemap
文件:
module InsiderMobile [system] {
// Framework complier
// header "../../../../Pods/InsiderMobile/InsiderMobile.framework/Headers/Insider.h"
//App complier
header "../../../../../../Pods/InsiderMobile/InsiderMobile.framework/Headers/Insider.h"
export *
}
因为文件目录在远程.modulemap
可能会更改,因此我必须在部署之前更改为合适的路径。我知道这很不方便,但它现在有效。