iOS库可以';找不到标题
我正在尝试将段分析与React本机包装库(React本机段分析)集成。核心段iOS库已添加为一个Pod(使用iOS库可以';找不到标题,ios,react-native,segment,Ios,React Native,Segment,我正在尝试将段分析与React本机包装库(React本机段分析)集成。核心段iOS库已添加为一个Pod(使用use\u frameworks!);我已将SegmentAnalytics.xcodeproj放入库/中的包装器库 我遇到的错误是 …/node_modules/react native segment analytics/ios/SegmentAnalytics/Classes/SegmentAnalytics.m:7:9:致命错误:未找到“analytics/SEGAnalytics
use\u frameworks!
);我已将SegmentAnalytics.xcodeproj放入库/
中的包装器库
我遇到的错误是
…/node_modules/react native segment analytics/ios/SegmentAnalytics/Classes/SegmentAnalytics.m:7:9:致命错误:未找到“analytics/SEGAnalytics.h”文件
有问题的路线是
#导入
我很有信心这不是特定于细分市场的,但我将把它留在这里以防万一
标题在项目中可用。事实上,我可以在项目根目录下的源文件中添加相同的#import
,它可以很好地解决问题。我能看出的唯一区别是包装器库是一个嵌入式xcodeproj
为了解决这个问题,我一直在绞尽脑汁地研究每个Xcode配置选项,包括尝试不同的头搜索路径和框架搜索路径,尝试将段库作为链接的二进制文件添加到任何我能想到的地方,甚至将导入语法从“”改为“”
感谢您的帮助
编辑:使用的库:
Edit2:添加一些文本,尝试澄清段与react native段分析库之间的差异
尝试使用此库的开发者提供的安装:
安装
通过运行npm install--save react native segment io analytics下载并安装npm包
在pod文件中,将pod“Analytics”添加到项目中,并在ios文件夹中运行pod安装
在Xcode内部(确保已打开.xcworkspace文件),转到项目导航器,右键单击库->将文件添加到[项目名称]
转到节点模块->反应本机段io分析->并选择RNSegmentIOAnalytics.xcodeproj文件。
确保您的项目链接到libAnalytics.a和libRNSegmentIOAnalytics.a(这些库应该列在“构建阶段->链接二进制与库”下)
可能您错过了一些步骤。经过大量的尝试和错误,我无法链接库并查看Segment Analytics Pod文件依赖关系。我最终删除了我们在项目中链接的所有第三方模块,并将它们全部添加为CoCoapod。这大大简化了我们的iOS项目文件(不再管理对搜索头路径或链接的LIB/框架的更改)
值得一提的是:
- 切换到通过CocoaPods拉入所有RN依赖项需要添加大部分,以使工作与以前一样
- 在这次迁移中,我遇到了缓存地狱。tl;dr清除所有节点模块、POD、派生数据和iOS生成文件夹
- 我不得不注释掉
使用\u框架。否则,我遇到了致命错误:“React/RCTBridgeModule.h”文件未找到错误。谷歌搜索导致了死胡同
使用的库已更新(在原始帖子中更新)。我从添加包装为Pod的RN改为只嵌入xcodeproj,因为我们的项目包含React Native(不是Cocoapod),并且我们遇到了其他依赖性问题,没有为React
添加Pod。我仍然不清楚一件事:您添加了SegmentAnalitics作为项目依赖性,你把react native segment analytics添加为pod依赖项?反之亦然?因为在你的第一张截图上,分段分析是项目依赖性的,读起来有点奇怪。我会更新原来的帖子,但是SegmentAnalytics.xcodeproj===react native segments analytics,analytics===segment的iOS库。好的,所以我已经深入研究了这个主题(react native apps)。正如我所理解的,您不能简单地将这个库添加到您的项目中。要更好地了解您的问题,请参阅。你们会看到,你们需要为React创建你们自己的podfile,在那个之后,我想,我在集成segment analytics库方面不会有任何问题。我做了一个测试,我初始化了react应用程序,如《入门指南》中所述,并将库与npm集成。它成功了。感谢你的投入。我们最终重做了很多项目设置,以使工作正常进行。