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

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


当前回答

我发现将库作为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中的文件夹

其他回答

头文件,你会害死我的…

最后通过添加(包括引号)让它工作

"${PODS_ROOT}/BuildHeaders"

到User Header Search Paths条目,并检查“递归”。

我是在Xcode 5.0的GM种子上,我不能让这些答案工作。我在SO上尝试了多个不同的关于头导入/ cocoapods的问题。

最后我找到了一个适合我的解决方案:我通过Mac AppStore升级到Xcode 5.0(安装在GM种子的顶部),现在头导入工作正常。

我的系统上还有Xcode 5的测试版,我也把它删除了。也许是这两件事的结合,但希望这能帮助到其他人。

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

#  use_frameworks!

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

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

对我来说没问题

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

建立设置

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

只构建体系结构

调试-是 放松-不

搜索路径

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