MacOS上React Native项目Xcode中XYZ与XYZ_appTests依赖循环问题
React Native项目Xcode循环依赖(主目标与测试目标)解决指南
直接检查Xcode依赖设置
- 打开Xcode项目,选中主目标XYZ,进入Build Phases -> Target Dependencies,如果里面有XYZ_appTests,直接移除
- 切换到测试目标XYZ_appTests,这里依赖主目标XYZ是正常的,但要确认主目标那边没反向依赖测试目标
- 再检查Link Binary With Libraries,主目标里要是有测试目标的库文件,一并删掉
修复CocoaPods配置
- 打开ios目录下的Podfile,看看是不是主目标里误加了测试相关的pod依赖,有的话删掉
- 执行
pod deintegrate彻底清掉现有pod配置,再跑pod install重新生成,注意看终端输出有没有异常的依赖关联提示
清理Xcode缓存
- 执行
rm -rf ~/Library/Developer/Xcode/DerivedData删掉派生数据 - 在Xcode里按
Cmd+Shift+K清项目缓存,再按Cmd+Option+Shift+K清构建文件夹 - 关掉Xcode重新打开项目,再试构建
- 执行
检查环境配置文件
- 打开.xcode.env,确认里面没有设置导致主目标指向测试目标的环境变量,比如FRAMEWORK_SEARCH_PATHS或者OTHER_LDFLAGS里有没有包含测试目标的路径
- 检查项目Build Settings里的Header Search Paths、Framework Search Paths,确保主目标没引用测试目标的路径
手动修改项目配置文件(极端情况)
- 右键项目的.xcodeproj文件,选Show Package Contents,打开project.pbxproj
- 搜索
PBXTargetDependency,找到主目标XYZ和测试目标XYZ_appTests的双向依赖条目,删掉主目标对测试目标的那条 - 保存文件后重新打开Xcode构建
内容的提问来源于stack exchange,提问作者Amrit Anand
相关产品推荐
相关产品推荐

