我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。

即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。


当前回答

对我来说有用的是选择Pods项目,在Pod项目的目标目录中找到并选择缺少头的目标框架,并在目标的构建设置中“Architectures”下将“Build Active Architecture Only”设置为“No”。

其他回答

如果没有导入头文件,则可能在HEADER_SEARCH_PATHS中存在冲突。尝试将$(inherited)添加到Build Settings中的头搜索路径,以确保它从CocoaPods的.xcconfig文件中提取任何搜索路径。

这将有助于解决任何冲突并正确导入源代码。

我发现将库作为pod安装直接帮助动态库。例如,对于Firebase:

pod 'RNFirebase', :path => 'path/to/node_modules/react-native-firebase/ios'

或ASLogger:

pod 'ASLogger', :path => 'path/to/node_modules/aslogger/ios' // path to header files

更改或硬编码HEADER_SEARCH_PATHS并没有帮助我。如果错误再次出现,不需要rm -rf node_modules,也不需要删除pod文件等,我发现清除缓存很有用。

对于react-native,我运行

    rm -rf $TMPDIR/react-native-packager-cache-*
    rm -rf $TMPDIR/metro-bundler-cache-*
    rm -rf $TMPDIR/metro-* 
    rm -rf $TMPDIR/react-* 
    rm -rf $TMPDIR/haste-*
    rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
    npm start -- --reset-cache

对于Xcode,我删除~/Library/Developer/Xcode/DerivedData中的文件夹

试着为你的目标评论一下这行吗

#  use_frameworks!

或者你可以参考我的另一个答案添加单元测试目标到xcode -导入桥接头失败不会消失

我将在我的构建设置中更新以下内容,我没有得到任何错误。要检查这些东西,同时更新你的cocoapods。

建立设置

启用位码- YES(如果你正在使用位码) 宏预处理器- $(继承) 其他链接标志- objc, -lc++, $(继承)

只构建体系结构

调试-是 放松-不

搜索路径

框架搜索路径$(继承)$(PROJECT_DIR) 库搜索路径- $(继承) 标题搜索路径- $(继承)

我发现${PODS_HEADERS_SEARCH_PATHS}是缺失的,它没有在我的开发git分支中定义,所以我添加了“$(SRCROOT)/Pods/Headers/”的头搜索路径递归

对我来说没问题